Какая разница, когда я устанавливаю поток Python в качестве демона, используя thread.setDaemon(True)
?
Какая разница, когда я устанавливаю поток python в качестве демона
Ответы (1)
Поток демона не будет препятствовать выходу приложения. Программа завершается, когда все потоки, не являющиеся демонами (включая основной поток), завершены.
Так что, как правило, если вы делаете что-то в фоновом режиме, вы можете установить поток как демон, чтобы вам не нужно было явно возвращать функцию этого потока, прежде чем приложение сможет выйти.
Например, если вы пишете приложение с графическим интерфейсом, а пользователь закрывает главное окно, программа должна выйти. Но если у вас есть потоки, не связанные с демоном, этого не произойдет.
Из документов: http://docs.python.org/library/threading.html#threading.Thread.daemon
Его начальное значение наследуется от создающего потока; основной поток не является потоком демона, и поэтому все потоки, созданные в основном потоке, по умолчанию имеют значение daemon = False.
Вся программа Python завершает работу, когда не остается ни одного активного потока, отличного от демона.