How to check for threads being finished?

Steven D'Aprano steve+comp.lang.python at pearwood.info
Fri Jul 5 22:18:23 EDT 2013


On Fri, 05 Jul 2013 19:12:44 +0200, Irmen de Jong wrote:

> On 5-7-2013 18:59, Steven D'Aprano wrote:
>> I then block until the threads are all done:
>> 
>> while any(t.isAlive() for t in threads):
>>     pass
>> 
>> 
>> Is that the right way to wait for the threads to be done? Should I
>> stick a call to time.sleep() inside the while loop? If so, how long
>> should I sleep? That's probably an unanswerable question, but some
>> guidelines on choosing the sleep time will be appreciated.
>> 
>> 
> I think your while loop busy-waits until the threads are completed. Do
> this instead:
> 
> for t in threads: t.join()    # optionally pass a timeout to join

Yes, the busy-wait was what I was concerned about.

Thanks to everyone who suggested the same solution.




-- 
Steven



More information about the Python-list mailing list