import signal signal.pthread_kill(thread_id, signalnum)
thread_id - номер целевого потока,signalnum - номер сигнала.Функция signal.pthread_kill() отправляет сигнал signalnum в поток thread_id, другой поток в том же процессе, что и вызывающая сторона.
Целевой поток может выполнять любой код Python или нет. Однако, если целевой поток выполняет интерпретатор Python, обработчики сигналов Python будут выполняться основным потоком (смотрите подраздел "Сигналы и потоки"). Следовательно, единственной точкой отправки сигнала в конкретный поток Python является принудительное завершение работающего системного вызова с помощью InterruptedError.
Используйте функцию threading.get_ident() или атрибут ident объектов threading.Thread, чтобы получить подходящее значение для аргумента thread_id.
Если аргумент signalnum равен 0, то сигнал не отправляется, но проверка ошибок все еще выполняется. Такое поведение можно использовать для проверки, работает ли целевой поток.
Вызывает событие аудита signal.pthread_kill с аргументами thread_id, signalnum.
Доступность: Unix. Для получения дополнительной информации смотрите справочную страницу pthread_kill(3).
Смотрите также функцию os.kill().
import threading, signal, sys def handler(signum, frame): sys.exit(3) >>> signal.signal(signal.SIGUSR1, handler) # Выходим из интерпретатора Python с кодом 3 >>> signal.pthread_kill(threading.get_ident(), signal.SIGUSR1)