Che differenza fa quando imposto il thread Python come Daemon
-
05-07-2019 - |
Domanda
Che differenza fa quando imposto un thread Python come demone, usando thread.setDaemon (True)
?
Soluzione
Un thread daemon non impedisce la chiusura dell'applicazione. Il programma termina quando tutti i thread non daemon (thread principale incluso) sono completi.
Quindi, in generale, se stai facendo qualcosa in background, potresti voler impostare il thread come demone in modo da non dover esplicitamente restituire la funzione di quel thread prima che l'app possa uscire.
Ad esempio, se si sta scrivendo un'applicazione GUI e l'utente chiude la finestra principale, il programma dovrebbe chiudersi. Ma se hai dei thread non daemon in giro, non lo farà.
Dai documenti: http://docs.python.org/ biblioteca / threading.html # threading.Thread.daemon
Il suo valore iniziale è ereditato da il thread di creazione; il filo principale non è un thread demone e quindi tutti i thread creati nel thread principale predefinito daemon = falso.
L'intero programma Python termina quando non sono rimasti thread non attivi daemon.