import threading
import sys
from time import time
def stop():
print "stop"
sys.exit()
t = threading.Timer(10, stop)
volts = 22
if volts > 20:
t.start()
print "Start"
10秒后打印Stop,这很好,但它忽略了sys.exit()。我需要在计时器到期时执行sys.exit。
答案 0 :(得分:1)
运行时
sys.exit()
在一个线程内部,它会引发SystemExit
异常。当您致电thread.exit()
时,它会引发相同的异常,因此您只退出线程,而不是您的程序。
但是对于您提供的代码,退出线程也会导致程序完成。