1. 程式人生 > >多線程 同步對象 event 簡單實例

多線程 同步對象 event 簡單實例

狀態 threads event join __name__ ear pre hellip pan

import threading,time
class Boss(threading.Thread):

    def run(self):
        print("BOSS:今晚大家都要加班到22:00。")
        print(event.isSet())# False
        #設置之後 worker才可以往下執行
        event.set()
        time.sleep(5)
        print("BOSS:<22:00>可以下班了。")
        print(event.isSet())
        event.set()

class Worker(threading.Thread): def run(self): #到這裏先不往下執行,等到Boss線程 set之後 event.wait()# 一旦event被設定,等同於pass print("Worker:哎……命苦啊!") time.sleep(1) #清空狀態,然後在設置,等待boss再次設置 event.clear() event.wait() print("Worker:OhYeah!
") 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() print("ending.....")

多線程 同步對象 event 簡單實例