Dalla documentazione: http://docs.python.org/2/library/threadCosa succede agli altri thread quando il thread principale chiama sys.exit()?
Quando termina il thread principale, che dipende dal sistema altri fili sopravvivere. Su SGI IRIX che utilizza l'implementazione del thread nativo, sopravvive. Sulla maggior parte degli altri sistemi, vengono uccisi senza eseguire provare ... infine le clausole o l'esecuzione di oggetti distruttori.
E qui, nella documentazione (http://docs.python.org/2/library/threading) si dice:
un thread può essere segnalato come un “filo daemon”. Il significato di questo flag è che l'intero programma Python termina quando rimangono solo i thread daemon . Il valore iniziale è ereditato dal thread di creazione.
Parliamo solo di thread non daemon qui. Dato che la prima citazione non fa alcun riferimento speciale ai thread non-demone, suppongo che anche i thread non daemon dovrebbero essere uccisi se il thread principale sta per uscire. Tuttavia, la seconda citazione suggerisce il contrario. E infatti, i thread non daemon non vengono effettivamente uccisi quando il thread principale termina. Quindi, qual è il punto della prima citazione qui?
Scrivere codice e provarlo –
Sembra che il modulo 'thread' gestisca tutto come thread daemon, mentre' threading' aggiunge il concetto di thread "non daemon". –
@ user2799617: Ho scritto codice e sono giunto alla conclusione "i thread non daemon non vengono effettivamente uccisi quando il thread principale termina".Ecco perché, mi chiedo quando si applica la prima citazione poiché il mio sistema è probabilmente uno di quei "molti altri sistemi": Ubuntu 12.10 che esegue python 2.7 – gjain