线程标准库模块--threading(之线程同步机制--事件Event)
事件Event
1、创建线程对象
e = threading.Event()
2、事件阻塞函数
e.wait([timeout])
3、设置事件
e.set()
4、清除事件
e.clear()
import threading
from time import sleep
#共享资源
s = None
#创建事件对象
e = threading.Event()
def bar():
print("呼叫foo")
global s
s = "天王盖地虎"
def foo():
print("等口令")
sleep(2)
if s == "天王盖地虎":
print("宝塔镇河妖")
else:
print("打死他")
e.set()
def fun():
print("呵呵....")
sleep(1)
e.wait()
global s
s = "小鸡炖蘑菇"
b = threading.Thread(target = bar)
f = threading.Thread(target = foo)
t = threading.Thread(target = fun)
b.start()
f.start()
t.start()
b.join()
f.join()
t.join()
#结果
呼叫foo
等口令
呵呵....
宝塔镇河妖