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

时间:2014-12-13 21:05:26

标签: python multithreading timer signals

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

  1. 来自主线程的信号
  2. 自行启动定时器调用
  3. 换句话说,线程应该根据它们为自己设置的计时器唤醒,并且能够在相关事件出现时响应来自管理线程的信号。

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

1 个答案:

答案 0 :(得分:5)

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

在主线程中:

sleepEvent = threading.Event()

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

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

现在你的线程将等待10秒(如计时器)或者如果主线程调用

将清除等待
sleepEvent.set()