2009-09-11 3 views

Antwort

19

Ein Daemon-Thread verhindert nicht, dass die Anwendung beendet wird. Das Programm endet, wenn alle Nicht-Daemon-Threads (Hauptthread enthalten) abgeschlossen sind.

Wenn Sie also etwas im Hintergrund tun, sollten Sie den Thread als Daemon festlegen, damit die Funktion dieses Threads nicht explizit zurückgegeben werden muss, bevor die Anwendung beendet werden kann.

Wenn Sie beispielsweise eine GUI-Anwendung schreiben und der Benutzer das Hauptfenster schließt, sollte das Programm beendet werden. Aber wenn Sie nicht-Daemon-Threads herumhängen, wird es nicht.

die Dokumente: http://docs.python.org/library/threading.html#threading.Thread.daemon

Sein Anfangswert von der Erschaffungs Thread vererbt wird; Der Hauptthread ist kein Daemon-Thread und daher alle Threads, die im Hauptthread standardmäßig auf Daemon = False erstellt werden.

Das gesamte Python-Programm wird beendet, wenn keine lebenden Nicht-Daemon-Threads übrig sind.

+1

Ok. Jetzt habe ich eine klare Vorstellung von Daemon-Threads. Danke Kumpel! –

+1

Was passiert also mit Daemon-Threads, wenn Sie die Anwendung schließen? –

+1

@Matteo Die Daemon-Threads werden beendet, wenn das Programm beendet wird. –

Verwandte Themen