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