多线程 同步对象 event 简单实例

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.....")

猜你喜欢

转载自www.cnblogs.com/xiaoshi657/p/9033912.html