which situations should we use thread. join() ?

Ulrich Eckhardt ulrich.eckhardt at dominolaser.com
Fri Feb 8 09:27:59 CET 2013


Am 08.02.2013 07:29, schrieb Chris Angelico:
> On Fri, Feb 8, 2013 at 3:32 PM, iMath <redstone-cold at 163.com> wrote:
>> which situations should we use thread. join() ?
>> http://bpaste.net/show/yBDGfrlU7BDDpvEZEHmo/
>>   why do we not put thread. join() in this code ?
>
> I've no idea why you don't put thread.join() in that code. Maybe
> because it isn't needed, maybe because someone likes to live on the
> edge, maybe it's not so much "the edge" as positively cloud cuckoo
> land. When should you use it? When you want to accomplish what the
> function does, the details of which can be found in the Fine Manual.
> Actually, you probably know already what it does, or you wouldn't even
> be asking.

It isn't needed. I personally would prefer an explicit join(), but 
according to the documentation, "The entire Python program exits when no 
alive non-daemon threads are left.". In other words, the initial thread 
is not special and the interpreter will implicitly join() all non-daemon 
threads.

Which again makes me want to find out in what thread's context the 
atexit call is made...

Uli




More information about the Python-list mailing list