【问题标题】:In python, how can I be notified when another thread is started(alive) and avoid busy waiting在python中,如何在另一个线程启动(活动)时通知我并避免忙等待
【发布时间】:2012-03-23 04:35:09
【问题描述】:

我在这种情况下:在某个时刻,主线程需要等到另一个线程启动(活着)。如何通知主线程?

我不想写一个循环让主线程忙着等待。非常感谢。

【问题讨论】:

    标签: python multithreading signals


    【解决方案1】:

    使用threading.Semaphore,您的主线程将在第二个线程上调用start 后调用acquire。当第二个线程启动到您想要的点时,它将在同一信号量上调用release

    如果第二个线程首先调用release,那么主线程将立即从acquire 返回。如果主线程首先调用acquire,那么它将阻塞,直到第二个线程调用release


    使用threading.Condition,其中一个条件变量可用于主线程和第二个线程。然后,主线程可以在启动第二个线程后对变量进行wait。当第二个线程启动时,它可以更改变量,然后在其上发出notify

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-26
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 2012-01-07
      • 1970-01-01
      相关资源
      最近更新 更多