在python中,如何在另一个线程启动(活动)时通知我,并避免繁忙等待

时间:2012-03-22 19:55:03

标签: python multithreading signals

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

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

1 个答案:

答案 0 :(得分:1)

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

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


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