阅读背景:

多线程中的event,用于多线程的协调

来源:互联网 

 

 

'''
简单的需求:红绿灯,红灯停,绿灯行
一个线程扮演红绿灯,每过一段时间灯变化,3-5个线程扮演车,红灯停,绿灯行
红绿灯线程和车的线程会相互依赖
这种场景怎么实现?---事件
切换一次灯就是一次事件,这次事件的变化造成其他状态的变化
事件是用于线程之间的数据同步的。事件变化其他线程相应作出变化
应该设置一个全局变量当做灯,车的线程监测全局变量。
事件就是封装的一个全局变量
event = threading.event()
event.set()   设置标志位,该状态下程序激活,“绿灯”
event.clear()  清空标志位,该状态下程序阻塞,“红灯”
event.wait()   一直监测标志位。如果标志位没被设置就阻塞(红灯),标志位一设置就激活(绿灯)
event.is_set() 判断标志位是否被设定

简单的需求:红绿灯,红灯停,绿灯行
一个线程扮演红绿灯,每过一



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: