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

Posted xiaoshi657

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程 同步对象 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.....")

 

以上是关于多线程 同步对象 event 简单实例的主要内容,如果未能解决你的问题,请参考以下文章

Java多线程---同步与锁

多线程

JAVA多线程基础

同步对象 队列 生产者消费者模式

多线程 Thread 线程同步 synchronized

java多线程并发系列之 (synchronized)同步与加锁机制