python线程的事件用于主线程控制其他线程的执行,事件主要提供了三个方法wait、clear、set
事件处理的机制:全局定义了一个“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会通知所有等待状态的线程恢复运行。
测试代码:
使用一个线程模拟门禁,当该事件为True的时候,门打开,3秒后自动关闭,如果门是关闭状态需要员工刷卡进入
#!/usr/bin/env python3 # -*- coding:utf-8 -*- __author__ = 'Alben Xue' import threading,time,random def door(): door_open_times = 0 while True: if door_swiping_event.is_set(): print("