threading.Event是什么?如何使用?
时间: 2023-03-20 22:02:49 浏览: 230
Python中使用threading.Event协调线程的运行详解
threading.Event是Python的一个线程同步工具,它提供了一个简单的机制来协调多个线程之间的操作。
使用threading.Event需要先创建一个Event对象,然后在不同的线程中调用wait()方法进行等待,或者调用set()方法来设置事件为已触发状态。如果事件已经处于触发状态,那么调用wait()方法的线程会立即返回,而不会进入等待状态。
例如,可以使用Event来实现多线程协作的场景,比如一个线程等待另一个线程完成某个操作后再继续执行。在等待的线程中调用wait()方法,而在完成操作的线程中调用set()方法来触发事件。
示例代码:
```
import threading
# 创建Event对象
event = threading.Event()
# 定义等待线程
def wait_thread():
print("Waiting for event...")
event.wait()
print("Event has been set!")
# 定义设置事件的线程
def set_thread():
print("Setting event...")
event.set()
# 启动线程
t1 = threading.Thread(target=wait_thread)
t2 = threading.Thread(target=set_thread)
t1.start()
t2.start()
```
在这个示例中,先启动的wait_thread线程会进入等待状态,等待set_thread线程设置事件。set_thread线程设置事件后,wait_thread线程会立即返回,并输出"Event has been set!"。
阅读全文