您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Python實現(xiàn)線程條件同步的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
同步條件
條件同步和條件變量同步差不多意思,只是少了鎖功能,因為條件同步設計于不訪問共享資源的條件環(huán)境。event=threading.Event():條件環(huán)境對象,初始值 為False;
event.isSet():返回event的狀態(tài)值;
event.wait():如果 event.isSet()==False將阻塞線程;
event.set(): 設置event的狀態(tài)值為True,所有阻塞池的線程激活進入就緒狀態(tài), 等待操作系統(tǒng)調(diào)度;
event.clear():恢復event的狀態(tài)值為False。
import threading, time class Boss(threading.Thread): def run(self): print("BOSS: 今晚大家加班") event.isSet() or event.set() time.sleep(5) print("BOSS: 大家可以下班了") event.isSet() or event.set() class Worker(threading.Thread): def run(self): event.wait() print("Worker: 唉。。。。") time.sleep(0.25) event.clear() event.wait() print("Worker: Great!") if __name__ == "__main__": event = threading.Event() threads = [] for i in range(5): threads.append(Worker()) threads.append(Boss()) for t in threads: t.start() for t in threads: t.join()
運行結(jié)果:
BOSS: 今晚大家加班 Worker: 唉。。。。 Worker: 唉。。。。 Worker: 唉。。。。 Worker: 唉。。。。 Worker: 唉。。。。 BOSS: 大家可以下班了 Worker: Great! Worker: Great! Worker: Great! Worker: Great! Worker: Great!
關于Python實現(xiàn)線程條件同步的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。