python event对象

python event对象

用于线程间通信,即程序中的其一个线程需要通过判断某个线程的状态来确定自己下一步的操作,就用到了event对象
event对象默认为假(Flase),即遇到event对象在等待就阻塞线程的执行。

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

    def run(self):
        print("老板:今天我不说走,谁都别走,耶稣也救不了他,我说的!")
        print(event.isSet())# False
        event.set()
        time.sleep(5)
        print("老板:可以走了。")
        print(event.isSet())# False 被员工那clear了
        event.set()

class Worker(threading.Thread):
    def run(self):

        event.wait() # 一旦event被设定,等同于pass
        event.clear()
        print("员工:等着啊,等着。。。。。")
        
        time.sleep(1)
        
        event.wait()
        print("员工:终于可以走了!")


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等于是创建了手动重置,需要手动clear.
Java中Object的notify和wait和这个玩意也很类似,其他语言转过来的就这么理解就行。.
C/C++用过kevent或者event内核对象的,都不差多,转python知道有这个event对象即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没事干写博客玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值