How to check for threads being finished?

Irmen de Jong irmen.NOSPAM at
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


More information about the Python-list mailing list