Quelle différence cela fait-il lorsque je configure un thread python en tant que démon
-
05-07-2019 - |
Question
Quelle différence y a-t-il entre le fait de définir un thread python comme démon et d'utiliser thread.setDaemon (True)
?
La solution
Un thread de démon n'empêchera pas l'application de quitter. Le programme se termine lorsque tous les threads non-démon (thread principal inclus) sont terminés.
Donc, généralement, si vous faites quelque chose en arrière-plan, vous voudrez peut-être définir le fil en tant que démon afin de ne pas avoir explicitement à renvoyer la fonction de ce fil avant la fermeture de l'application.
Par exemple, si vous écrivez une application graphique et que l'utilisateur ferme la fenêtre principale, le programme doit quitter. Mais si vous avez des threads non-démons, ce ne sera pas le cas.
D'après les documents: http://docs.python.org/ library / threading.html # threading.Thread.daemon
Sa valeur initiale est héritée de le fil créateur; le fil conducteur n'est pas un fil de démon et donc tous les threads créés dans le thread principal default to daemon = False.
L’ensemble du programme Python se ferme lorsque il ne reste plus de threads non-démon en vie.