谁能解释一下interrupt_main() 方法在Python 中是如何工作的?
我有这段 Python 代码:
import time, thread
def f():
time.sleep(5)
thread.interrupt_main()
def g():
thread.start_new_thread(f, ())
time.sleep(10)
print time.time()
try:
g()
except KeyboardInterrupt:
print time.time()
当我尝试运行它时,它给了我以下输出:
1380542215.5
# ... 10 seconds break...
1380542225.51
但是,如果我手动中断程序(CTRL-C),线程被正确中断:
1380542357.58
^C1380542361.49
为什么在第一个示例中线程中断仅在 10 秒(而不是 5 秒)后发生?
我找到了一个古老的线程 n Python mailing list,但它几乎没有解释任何内容。