这是我的计时器代码
import signal, time
def timeoutHandler():
raise Exception()
try:
signal.signal(signal.SIGALRM, timeoutHandler)
signal.setitimer(signal.ITIMER_REAL, 5)
count = 0
while True:
print count
count += 1
time.sleep(1)
except Exception as e:
print e
效果很好,困扰我的是如何通过信号模块实现(我对信号没有很好的了解)
我认为实施就像
信号模块将在单独的线程中监视SIGALRM
一旦收到,就有机会执行处理程序
我不明白它如何将其控制权恢复到主线程(捕获异常)
肯定的线程不是这里的图片,我认为我在这里缺少一些操作系统概念。
答案 0 :(得分:0)
“单独的线程”是操作系统本身。 style
有效地要求操作系统在5秒内向此过程发送signal.settimer
。