面试题答案
一键面试Event同步原语典型应用场景
- 线程间信号通知:一个线程完成某个任务后,通知其他等待的线程继续执行。例如,数据加载线程完成数据加载后,通知处理线程开始处理数据。
- 控制线程启动时机:可以在主线程中设置某些条件,当条件满足时,通过Event通知工作线程启动。
使用Event协调线程操作示例
import threading
import time
def worker(event):
print("Worker线程等待信号...")
event.wait()
print("Worker线程接收到信号,开始工作...")
if __name__ == "__main__":
event = threading.Event()
t = threading.Thread(target=worker, args=(event,))
t.start()
time.sleep(2)
print("主线程准备好信号,发送给Worker线程")
event.set()
在上述代码中,worker
线程调用event.wait()
等待信号。主线程睡眠2秒后,调用event.set()
发送信号,worker
线程接收到信号后继续执行后续代码。