全局定义了一个“Flag”,如果“Flag”值为 False,那么当程序执行 event.wait 方法时就会阻塞,如果“Flag”值为True,那么执行event.wait 方法时便不再阻塞。
clear:将“Flag”设置为False
set:将“Flag”设置为True
用 threading.Event 实现线程间通信,使用threading.Event可以使一个线程等待其他线程的通知,我们把这个Event传递到线程对象中,
Event默认内置了一个标志,初始值为False。一旦该线程通过wait()方法进入等待状态,直到另一个线程调用该Event的set()方法将内置标志设置为True时,该Event会通知所有等待状态的线程恢复运行。
import threading,time event = threading.Event() def aa():
print ('begin')
event.wait()
print ('end') f=threading.Thread(target=aa)
event.clear()#虽然event初始默认值就是false,但习惯上
#还是设置一下
f.start()
time.sleep(10)#这期间线程被阻塞
event.set()