【发布时间】:2012-03-23 04:35:09
【问题描述】:
我在这种情况下:在某个时刻,主线程需要等到另一个线程启动(活着)。如何通知主线程?
我不想写一个循环让主线程忙着等待。非常感谢。
【问题讨论】:
标签: python multithreading signals
我在这种情况下:在某个时刻,主线程需要等到另一个线程启动(活着)。如何通知主线程?
我不想写一个循环让主线程忙着等待。非常感谢。
【问题讨论】:
标签: python multithreading signals
使用threading.Semaphore,您的主线程将在第二个线程上调用start 后调用acquire。当第二个线程启动到您想要的点时,它将在同一信号量上调用release。
如果第二个线程首先调用release,那么主线程将立即从acquire 返回。如果主线程首先调用acquire,那么它将阻塞,直到第二个线程调用release。
使用threading.Condition,其中一个条件变量可用于主线程和第二个线程。然后,主线程可以在启动第二个线程后对变量进行wait。当第二个线程启动时,它可以更改变量,然后在其上发出notify。
【讨论】: