使用模块 threading 和类 Thread()
时,我无法捕获 SIGINT
(在控制台中按下 Ctrl + C)。
为什么?我该怎么做?
简单的测试程序:
#!/usr/bin/env python
import threading
def test(suffix):
while True:
print "test", suffix
def main():
for i in (1, 2, 3, 4, 5):
threading.Thread(target=test, args=(i, )).start()
if __name__ == "__main__":
main()
当我按下Ctrl + C时,没有任何反应。
threading.Thread
)的线程结束。您可以将这些线程设置为守护进程,以避免这种情况,但是这会导致错误提示声音,因为仍在运行的线程的 Python 环境被强制终止。您必须要求线程退出,或者不使用线程。 - Thomas Wouters