python中threading模組詳解,threading提供了一個比thread模組更高層的API來提供執行緒的並發性。這些線程並發運行並共享記憶體。
下面來看threading模組的具體用法:
目標函數可以實例化一個Thread對象,每個Thread對象代表著一個線程,可以透過start()方法,開始運行。
這裡對使用多執行緒並發,和不適用多執行緒並發做了一個比較:
首先是不使用多執行緒的操作:
程式碼如下:
#!/usr/bin/python #compare for multi threads import time def worker(): print"worker" time.sleep(1) return if__name__ =="__main__": for i in xrange(5): worker()
執行結果如下:
下面是使用多執行緒並發的操作:
程式碼如下:
#!/usr/bin/python import threading import time defworker(): print"worker" time.sleep(1) return fori in xrange(5): t=threading.Thread(target=worker) t.start()
可以明顯看出使用了多執行緒並發的操作,花費時間要短的很多。
此方法傳回目前行程中執行緒的個數。在傳回的個數中包含主線程。
程式碼如下:
#!/usr/bin/python #current's number of threads import threading import time defworker(): print"test" time.sleep(1) for i in xrange(5): t=threading.Thread(target=worker) t.start() print"current has %d threads" % (threading.activeCount() -1)
此方法傳回目前運行中的Thread物件清單。
程式碼如下:
#!/usr/bin/python #test the variable threading.enumerate() import threading import time defworker(): print"test" time.sleep(2) threads=[] for i in xrange(5): t=threading.Thread(target=worker) threads.append(t) t.start() for item in threading.enumerate(): print item print for item in threads: print item
設定後台進程。
程式碼如下:
#!/usr/bin/python #create a daemon import threading import time def worker(): time.sleep(3) print"worker" t=threading.Thread(target=worker) t.setDaemon(True) t.start() print"haha"
可以看出worker()方法中的列印操作並沒有顯示出來,說明已經成為背景進程。
以上是python中threading模組怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!