Python 多執行緒複習

2021-08-10 01:25:35 字數 583 閱讀 1140

python 多執行緒4種方式同步:

1,lock。

最簡單的用法,對於乙個全域性變數,要修改或者讀取前都記得lock.acquire下。然後用完就release下就好。

缺點:無法通知某個執行緒去執行,需要不停的詢問查,是否可以獲得鎖了。

2,訊號量:

就是乙個計數器,他不i能<0,當<0時,則等待其他的執行緒release,此執行緒才可以使用。

然後使用方法和lock一樣。

3,條件變數:

等會某些條件發生,否則一直處於wait狀態,類似pv模型。

不過不鎖更加方便和好用。

可以認為condition維護了乙個鎖和waitting池,執行緒通過acquire獲得condition變數,呼叫wait,則會釋放condition內部鎖並且進入blocked狀態,同時wait池記錄這

個執行緒。當呼叫notify時,condition物件會從waitting池中挑乙個執行緒,通知他呼叫acquire嘗試取到鎖。

4,queue :

使用get 和put 方法來操作。 queue自動管理。空了則禁止get,阻塞。滿了則自動禁止put。 所以初始化queue的時候,要指定大小。

多執行緒複習2

1.全域性鎖 gil 在任意乙個指定的時間中,有且僅有乙個執行緒在執行 執行緒比較安全 2.執行緒複雜度較高,通常不建議使用 3.使用在 資料庫執行緒池,資料庫連線池,4.不要大量使用執行緒,修改難度稍大 mlock threading.lock 5.互斥鎖 加鎖 acquire mlock.acq...

python多執行緒 python多執行緒

通常來說,多程序適用於計算密集型任務,多執行緒適用於io密集型任務,如網路爬蟲。關於多執行緒和多程序的區別,請參考這個 下面將使用python標準庫的multiprocessing包來嘗試多執行緒的操作,在python中呼叫多執行緒要使用multiprocessing.dummy,如果是多程序則去掉...

java基礎複習 多執行緒

第一節 兩種建立方法 1繼承thread類,並複寫run方法 2實現runnable介面,並複寫run方法 3兩種方式的特點和優缺點,以及應用。賣票程式中,使用1方法建立的執行緒,每建立乙個執行緒,都有100張票。而我們想要的多個執行緒共同操作這100張票,這時就要使用第二種方法。第二節 執行緒的執...