import threading
# 创建一个事件对象
event = threading.Event()
def wait_for_event():
print("等待事件触发...")
event.wait() # 阻塞当前线程,直到事件被设置
print("事件已触发,继续执行...")
def trigger_event():
print("触发事件前")
event.set() # 设置事件,唤醒所有等待该事件的线程
print("事件已触发")
# 创建两个线程,一个等待事件,另一个触发事件
thread1 = threading.Thread(target=wait_for_event)
thread2 = threading.Thread(target=trigger_event)
# 启动线程
thread1.start()
thread2.start()
# 等待两个线程完成
thread1.join()
thread2.join()
threading
模块中的 Event
类来创建事件对象。event = threading.Event()
创建了一个事件对象,该对象可以用于线程间的同步。event.wait()
会阻塞当前线程,直到事件被设置(即调用了 event.set()
)。event.set()
会设置事件,唤醒所有等待该事件的线程。start()
方法启动线程,并通过 join()
方法确保主线程等待子线程完成。这个示例展示了如何使用 Python 的 threading.Event
来实现线程间的简单同步。
上一篇:python截取指定位置的字符串
下一篇:python tcp服务器
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站