Простой способ дождаться завершения всех потоков deamon перед выходом из программы Python? - PullRequest
0 голосов
/ 02 мая 2018

У меня есть длительная операция, которая отслеживается из потока демона и вызывает обратный вызов в главном потоке после его завершения.

Программы Python завершаются, когда остаются только потоки демона . Это немного прискорбно в моей ситуации, потому что это означает, что обратный вызов никогда не будет вызван, если программа завершит работу до завершения длительной операции.

Планирование и мониторинг обратного вызова происходит глубоко внутри внешней библиотеки, поэтому я не могу легко ее изменить (длительная операция - google.api_core.operation.Operation).

Есть ли простой способ ожидания завершения потока демона из моего клиентского кода? Или другой способ убедиться, что обратный вызов будет запущен?

1 Ответ

0 голосов
/ 02 мая 2018

Если вы хотите дождаться завершения потоков демона до выхода из основной программы, но по какой-то причине у вас нет ссылки на эти потоки, модуль threading предоставит вам:

Предоставляет функцию enumerate , которая возвращает список текущих активных потоков. Просто прокрутите его результаты и join() интересующие вас темы.

...