How to check for threads being finished?

Irmen de Jong irmen.NOSPAM at xs4all.nl
Fri Jul 5 19:12:44 CEST 2013


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


-Irmen




More information about the Python-list mailing list