全局定义了一个内置标志Flag,如果Flag值为 False,那么当程序执行 event.wait方法时就会阻塞,如果Flag值为True,那么event.wait 方法时便不再阻塞。
Event()
set(): 将标志设为True,并通知所有处于等待阻塞状态的线程恢复运行状态。
clear(): 将标志设为False。
wait(timeout): 如果标志为True将立即返回,否则阻塞线程至等待阻塞状态,等待其他线程调用set()。
is_set(): 获取内置标志状态,返回True或False。
import threading
import time
event = threading.Event()
def chihuoguo(name):
print(f"进入线程:{name}")
time.sleep(1)
event.wait()
print(f"收到通知:{name}")
threads = []
thread1 = threading.Thread(target=chihuoguo, args=("a", ))
thread2 = threading.Thread(target=chihuoguo, args=("b", ))
threads.append(thread1)
threads.append(thread2)
for thread in threads:
thread.start()
time.sleep(0.1)
print("主线程发送通知")
event.set()
参考:
https://www.cnblogs.com/yoyoketang/p/8341972.html