Обработчик сигналов, питон - PullRequest
       7

Обработчик сигналов, питон

4 голосов
/ 22 сентября 2010

У меня есть многопоточная программа, и я использую signal.signal (SIGINT, func), чтобы уничтожить все потоки при нажатии ctrl c.У меня вопрос такой:

Я должен вызвать signal.signal (...) из main в python.Нужно ли вызывать это в цикле или я могу просто установить его один раз, и всякий раз, когда пользователь нажимает ctrl c, сигнал будет перехвачен?

1 Ответ

2 голосов
/ 22 сентября 2010

Только основной протектор может обрабатывать сигналы.Просто сделайте все ваши потоки "демоническими" (установите свойство .daemon объекта потока равным True перед тем, как запускать поток), чтобы обеспечить завершение потоков, когда основной поток делает.

...