让线程等待定时器或信号?

Ada*_*tan 1 python multithreading signals timer

我正在编写一个多线程Python应用程序,其中每个线程应在以下情况下唤醒:

  1. 来自主线程的信号
  2. 定时器调用由其自身启动

换句话说,线程应根据它们为自己设置的计时器唤醒,并且能够在出现相关事件时响应来自管理线程的信号.

实现双(定时/事件)唤醒机制的惯用方法是什么?

sbe*_*rry 5

好吧,threading.Event,有一个等待方法,需要超时.所以你可以做一些简单的事情

在主线程中:

sleepEvent = threading.Event()
Run Code Online (Sandbox Code Playgroud)

将其传递给您的其他线程,并在其中:

sleepEvent.wait(10) # wait for up to 10 seconds
Run Code Online (Sandbox Code Playgroud)

现在你的线程要么等待10秒(就像一个计时器),要么在主线程调用时清除等待

sleepEvent.set()
Run Code Online (Sandbox Code Playgroud)