我不太明白为什么多线程中.子线程不可能设置信号处理函数,否则会报 ValueError 。
例如
def test3():
try:
signal.alarm(60)
proc = subprocess.Popen("sleep 100", shell=True)
stdoutdata, stderrdata = proc.communicate()
signal.alarm(0) # reset the alarm
except Alarm:
print("上传文件时间超时:\n ")
if __name__ == '__main__':
signal.signal(signal.SIGALRM, alarm_handler)
sched = Scheduler()
sched.start()
sched.add_interval_job(test3, minutes = 3)
例如如上的程序,信号处理函数必须放到主线程里面??
另外这里面如果我需要在子线程里面处理信号请问应该如何处理哈?