Python で interrupt_main() メソッドがどのように機能するかを説明できる人はいますか?
私はこの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 メーリング リストを見つけましたが、ほとんど何も説明していません。