threading.Event是Python中的一个线程同步工具类,用于线程间的通信。它提供了set、wait和clear方法来控制线程的执行。

  1. set方法:将Event对象的内部标志设置为True,通知所有正在等待的线程可以继续执行。如果没有任何线程在等待,那么下次调用wait方法时将立即返回。

  2. wait方法:使当前线程等待,直到Event对象的内部标志为True。如果标志为True,则wait方法会立即返回,否则会一直阻塞直到标志为True。

  3. clear方法:将Event对象的内部标志设置为False,使得所有调用wait方法的线程都会被阻塞。

下面是一个使用threading.Event的示例代码:

import threading

# 创建一个Event对象
event = threading.Event()

# 线程函数,等待Event对象的标志为True时继续执行
def thread_func():
    print("Thread started")
    event.wait()
    print("Thread resumed")

# 创建线程并启动
thread = threading.Thread(target=thread_func)
thread.start()

# 主线程等待一段时间后设置Event对象的标志为True
print("Main thread sleeping")
time.sleep(2)
event.set()

# 等待线程执行完毕
thread.join()

在上面的示例中,主线程创建了一个Event对象,然后创建一个子线程并启动。子线程会首先打印"Thread started",然后调用event.wait()方法等待Event对象的标志为True。主线程在等待了2秒后调用event.set()方法设置Event对象的标志为True,这时子线程会继续执行并打印"Thread resumed"。最后主线程调用thread.join()等待子线程执行完毕。

需要注意的是,Event对象的标志初始值为False,调用clear()方法可以将标志设置为False。在调用wait()方法时,如果标志为False,线程会被阻塞直到标志为True

threadingevent的setwaitclear方法

原文地址: http://www.cveoy.top/t/topic/h71h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录