让一个线程等待定时器或一个信号?(Make a thread wait for either a T

2019-10-21 10:12发布

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

  1. 从主线程的信号
  2. A定时器调用本身开始

换句话说,线程应该根据他们为自己设定一个计时器醒来,并能够从一个管理线程每当有相关事件出现的信号做出反应。

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

Answer 1:

那么, threading.Event ,有一个等待的方法,这需要一个超时。 所以,你可以做的简单的东西

在主线程:

sleepEvent = threading.Event()

传递到其他线程,并在其中:

sleepEvent.wait(10) # wait for up to 10 seconds

现在,你的线程要么等待10秒(如定时器)或将清除等待,如果主线程调用

sleepEvent.set()


文章来源: Make a thread wait for either a Timer or a Signal?