本文主要講述什麼是執行緒:執行緒是作業系統能夠進行運算調度的最小單位。進程被包含在進程中,是進程中實際處理單位。一條線程就是一堆指令集合。
一條線程是指進程中一個單一順序的控制流,一個進程中可以並發多個線程,每個線程並行執行不同的任務。
Python透過兩個標準函式庫thread和threading提供對執行緒的支援。 thread提供了低階的、原始的執行緒以及一個簡單的鎖。
threading 模組提供的其他方法:
1.threading.currentThread(): 傳回目前的執行緒變數。
2.threading.enumerate(): 傳回一個包含正在執行的執行緒的list。正在執行指執行緒啟動後、結束前,不包含啟動前和終止後的執行緒。
3.threading.activeCount(): 傳回正在執行的執行緒數量,與len(threading.enumerate())有相同的結果。
除了使用方法外,線程模組同樣提供了Thread類別來處理線程,Thread類別提供了以下方法:
1.run(): 用來表示線程活動的方法。
2.start():啟動執行緒活動。
3.join([time]): 等待至執行緒中止。這阻塞調用線程直至線程的join() 方法被調用中止-正常退出或拋出未處理的異常-或者是可選的超時發生。
4.isAlive(): 回傳執行緒是否活動的。
5.getName(): 傳回執行緒名稱。
6.setName(): 設定執行緒名稱。
使用Threading模組建立線程
使用Threading模組建立線程,直接從threading.Thread繼承,然後重寫__init__方法和run方法:
#!/usr/bin/python # -*- coding: UTF-8 -*- import threading import time exitFlag = 0 class myThread (threading.Thread): #继承父类threading.Thread def __init__(self, threadID, name, counter): threading.Thread.__init__(self) self.threadID = threadID self.name = name self.counter = counter def run(self): #把要执行的代码写到run函数里面 线程在创建后会直接运行run函数 print "Starting " + self.name print_time(self.name, self.counter, 5) print "Exiting " + self.name def print_time(threadName, delay, counter): while counter: if exitFlag: (threading.Thread).exit() time.sleep(delay) print "%s: %s" % (threadName, time.ctime(time.time())) counter -= 1 # 创建新线程 thread1 = myThread(1, "Thread-1", 1) thread2 = myThread(2, "Thread-2", 2) # 开启线程 thread1.start() thread2.start() print "Exiting Main Thread"
以上程式執行結果如下;
Starting Thread-1 Starting Thread-2 Exiting Main Thread Thread-1: Thu Mar 21 09:10:03 2013 Thread-1: Thu Mar 21 09:10:04 2013 Thread-2: Thu Mar 21 09:10:04 2013 Thread-1: Thu Mar 21 09:10:05 2013 Thread-1: Thu Mar 21 09:10:06 2013 Thread-2: Thu Mar 21 09:10:06 2013 Thread-1: Thu Mar 21 09:10:07 2013 Exiting Thread-1 Thread-2: Thu Mar 21 09:10:08 2013 Thread-2: Thu Mar 21 09:10:10 2013 Thread-2: Thu Mar 21 09:10:12 2013 Exiting Thread-2
以上是什麼是Python Threading模組? 3分鐘了解什麼是線程模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!