Выход из процесса, пока потоки спят - PullRequest
0 голосов
/ 21 октября 2009

В скрипте Python я запустил несколько потоков, каждый из которых извлекает некоторый ресурс с интервалом, используя time.sleep (интервал). У меня работает еще один поток, который использует модуль cmd для мониторинга ввода пользователя. Когда пользователь вводит 'q', я звоню

sys.exit(0)

Однако, когда скрипт запущен, и я ввожу 'q', поток мониторинга пользовательского ввода потока завершается, но спящие потоки все еще живы. (имеется в виду, что программа не завершается)

Мне интересно, правильно ли я это делаю?

1 Ответ

4 голосов
/ 21 октября 2009

sys.exit остановит только поток, из которого он выполняется. Если в вашей программе есть другие нити-демоны, они будут продолжать выполняться. Раздел 17.2.1 документации по библиотеке Python содержит:

Нить может быть помечена как «демон». нить". Значение этого флага является то, что вся программа Python выходит, когда только потоки демона оставил. Начальное значение наследуется из создаваемой темы. Флаг может быть установленным через свойство демона.

См. Также Почему sys.exit () не завершается при вызове внутри потока в Python? .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...