Я пытаюсь отправить сигнал из дочернего потока в основной поток в многопоточной программе (не может использовать несколько процессов). К сожалению, даже после исчерпания всех материалов для чтения, доступных в Интернете (которые я смог найти), я не могу получить четкое представление о том, как это сделать. Я новичок в сигналах И Python, поэтому, пожалуйста, потерпите меня и объясните, как новичку. Я не могу использовать метод соединения в процессе, так как хочу, чтобы оба потока работали одновременно. Вот код, который я нашел, связанный с темой здесь - http://pymotw.com/2/signal/#signals-and-threads и у меня это не работает.
import signal
import threading
import os
import time
def signal_handler(num, stack):
print 'Received signal %d in %s' % (num, threading.currentThread())
signal.signal(signal.SIGUSR1, signal_handler)
def wait_for_signal():
print 'Waiting for signal in', threading.currentThread()
signal.pause()
print 'Done waiting'
# Start a thread that will not receive the signal
receiver = threading.Thread(target=wait_for_signal, name='receiver')
receiver.start()
time.sleep(0.1)
def send_signal():
print 'Sending signal in', threading.currentThread()
os.kill(os.getpid(), signal.SIGUSR1)
sender = threading.Thread(target=send_signal, name='sender')
sender.start()
sender.join()
# Wait for the thread to see the signal (not going to happen!)
print 'Waiting for', receiver
signal.alarm(2)
receiver.join()
Пожалуйста, объясните на многопоточном примере, если это возможно. Заранее спасибо!