явное соединение потоков Python? - PullRequest
2 голосов
/ 22 июня 2010

Мне нужно запустить несколько потоков в программе на Python.Потоки выполняют фоновую задачу, которая может занять много времени, поэтому я не хочу блокировать основной поток, ожидающий выполнения задачи.

Python предоставляет возможность «пожинать» потоки с помощью Thread.join() и Thread.isAlive ().Но я на самом деле не забочусь о том, чтобы узнать, когда закончится нить.Я доволен, чтобы запустить поток, позволить ему делать свое дело и никогда больше не беспокоиться об этом.

Вопрос в том, нужно ли мне хранить ссылки на объекты потока, которые я запускаю, чтобы я могпозже присоединиться () к ним?Или я могу просто позволить ссылке на объект Thread выйти из области видимости и не беспокоиться об этом?Есть ли в этом случае «правильная» вещь?

1 Ответ

1 голос
/ 22 июня 2010

Вам не нужно явно join темы - просто убедитесь, что они не "демонизированы" (оставьте их атрибут daemon по умолчанию, False), чтобы они поддерживали процесс до все они сделаны (если вы делаете свои потоки демонами, то вы должны убедиться, что основной поток не завершается до тех пор, пока не будут завершены все соответствующие потоки, иначе эти потоки будут уничтожены ОС).

Я думаю, что правильнее всего самое простое: забудьте о ваших "фоновых потоках", просто сделайте их недемонами (что в конце концов является их состоянием по умолчанию).

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