Welchen Unterschied macht es, wenn ich einen Python-Thread als Daemon setze, mit thread.setDaemon(True)
?Welchen Unterschied macht es, wenn ich Python-Thread als Daemon setze
Antwort
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. DynamoDB: Welchen Unterschied macht es, wenn ich ein Attribut auf "NULL" setze: "wahr" oder einfach weglassen?
- 2. Welchen Unterschied macht Transpose?
- 3. Welchen Unterschied macht das Instanziieren?
- 4. SQL Server-Indizes - aufsteigend oder absteigend, welchen Unterschied macht es?
- 5. Welchen Unterschied macht es, wenn ich die Eigenschaft einer Klasse direkt deklariere und darauf zugreife?
- 6. Was macht diese Daemon-Methode?
- 7. Welchen Unterschied macht es, mehrere Skriptblöcke auf einer Webseite zu verwenden?
- 8. Welchen Unterschied macht es - Ausführen eines 'asynchronen' Aktionsdelegaten mit einer Task.Run (vs. Standard-Aktionsdelegate)?
- 9. Timer() als Daemon gegen Nicht-Daemon
- 10. Wie gebe ich Jenkins mehr Heap-Speicher, wenn es unter Ubuntu als Daemon läuft?
- 11. Welchen Unterschied macht es, wenn man einen VBA-Code in "Sheets", in "ThisWorkbook" und in "Modules" ausführt?
- 12. Welchen Sinn hat jQuery ajax? Macht es tatsächlich etwas?
- 13. Führen Sie web.py als Daemon
- 14. Macht es für den Debugger einen Unterschied, dass es Scala-Code ist, den ich debugge?
- 15. Run Bash-Skript als Daemon
- 16. Ausnahme in Asyncore auf Dateizugriff, wenn als Daemon losgelöst
- 17. Sellerie läuft als Daemon stoppt
- 18. HttpWebRequest.UserAgent: Was macht es
- 19. Wie installiere ich Tomcat als Daemon unter OS X?
- 20. Unterschied zwischen getcwd() und dirname (__ FILE__)? Welchen sollte ich verwenden?
- 21. Wie setze ich ImageSource als Xamarin.FormsButton?
- 22. Wie man uwsgi --emperor als Daemon ausführen
- 23. Wie starte ich ein Go-Programm als Daemon in Ubuntu?
- 24. Warum macht es das? wenn - __name__ == '__main__'
- 25. Macht thenRunAsync (im Gegensatz zu thenRun) einen Unterschied, wenn es nach einem runAsync-Aufruf verkettet wird?
- 26. Statsd als Daemon auf EC2-Instanzen programmgesteuert
- 27. Daemon Java-Prozess - gibt es so etwas?
- 28. Apdduler im Python-Skript als Daemon ausführen?
- 29. Start mongodb über numactl als Daemon
- 30. ASP.NET: Welchen Vorteil, wenn ich mit verwenden, wenn ein Objekt
Ok. Jetzt habe ich eine klare Vorstellung von Daemon-Threads. Danke Kumpel! –
Was passiert also mit Daemon-Threads, wenn Sie die Anwendung schließen? –
@Matteo Die Daemon-Threads werden beendet, wenn das Programm beendet wird. –