我讀的地方,KeyboardInterrupt異常只能由在Python主線程讀取。我還讀到主線程在執行子線程時被阻塞。那麼,這是否意味着CTRL +ç可以永遠無法達到的子線程。我嘗試以下的代碼:按Ctrl-C,即一個KeyboardInterrupt殺死線程在python
def main():
try:
thread1.start() #thread is totally blocking e.g. while (1)
thread1.join()
except KeyboardInterrupt:
print "Ctrl-c pressed ..."
sys.exit(1)
在這種情況下,存在的CTRL + Ç上的執行沒有影響。這就像它不能聽中斷一樣。我的理解是錯誤的嗎?是否有任何其他的方式來殺死使用CTRL +ç的線程?
見http://stackoverflow.com/questions/323972/is-there -any-way-to-kill-a-thread-in-python – 2010-11-09 17:33:31
您的主線程未被阻止,因爲您啓動了另一個線程。如果這是真的,那麼線索的意義何在?這是因爲你調用了thread1.join(),它會阻塞直到thread1完成。 – Falmarri 2010-11-09 17:42:59