一)執行緒基礎
1、建立執行緒:
thread模組提供了start_new_thread函式,用以建立執行緒。start_new_thread函式成功建立後還可以對其進行操作。
其函式原型:
start_new_thread(function,atgs[,kwargs])
其引數含義如下:
args:元組形式的引數列表。
kwargs: 可選引數,以字典的形式指定引數
方法一:通過使用thread模組中的函式建立新執行緒。
方法二:通過繼承threading.thread建立執行緒
二)thread物件中的常用方法:
1、isalive方法:
2、join方法:
原型:join([timeout])
timeout: 可選引數,執行緒執行的最長時間
3、執行緒名:
4、setdaemon方法
在指令碼執行的過程中有乙個主線程,如果主線程又建立了乙個子執行緒,那麼當主線程退出時,會檢驗子執行緒是否完成。如果子執行緒未完成,則主線程會在等待子執行緒完成後退出。
當需要主線程退出時,不管子執行緒是否完成都隨主線程退出,則可以使用thread物件的setdaemon方法來設定。
三)執行緒同步
1.簡單的執行緒同步
使用thread物件的lock和rlock可以實現簡單的執行緒同步。對於如果需要每次只有乙個執行緒操作的資料,可以將操作過程放在acquire方法和release方法之間。如:
2、使用條件變數保持執行緒同步。
python的condition物件提供了對複製執行緒同步的支援。使用condition物件可以在某些事件觸發後才處理資料。condition物件除了具有acquire方法和release的方法外,還有wait方法、notify方法、notifyall方法等用於條件處理。
執行緒間通訊:
event物件用於執行緒間的相互通訊。他提供了設定訊號、清除信巨集、等待等用於實現執行緒間的通訊。
1、設定訊號。event物件使用了set()方法後,isset()方法返回真。
2、清除訊號。使用event物件的clear()方法後,isset()方法返回為假。
3、等待。當event物件的內部訊號標誌為假時,則wait()方法一直等到其為真時才返回。還可以向wait傳遞引數,設定最長的等待時間。
python 多執行緒程式設計
一 執行緒基礎 1 建立執行緒 thread模組提供了start new thread函式,用以建立執行緒。start new thread函式成功建立後還能夠對其進行操作。其函式原型 start new thread function,atgs kwargs 其引數含義例如以下 args 元組形式...
Python多執行緒程式設計
import threading import time deffunc name time.sleep 3 print 子執行緒 s 啟動 threading.current thread name print hello name print 子執行緒 s 結束 threading.curren...
python多執行緒程式設計
本文主要學習的執行緒模組是在python3.7版本環境中的threading模組,不涉及另外的乙個執行緒模組 thread。執行緒模組中的屬性和方法 import threading dir threading 下面列表為返回資料 barrier boundedsemaphore brokenbar...