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

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

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

1 ответ

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

Другие вопросы по тегам