我在这里尝试做的是使用键盘中断来退出程序中所有正在进行的线程。这是创建线程的代码的精简版本:
for i in taskDictionary:
try:
sleep(60)
thread = Thread(target = mainModule.executeThread)
thread.start()
except KeyboardInterrupt:
thread.__stop()
程序本身要复杂得多,考虑到影响线程的大量不同变量,甚至可以选择以顺序模式启动,其中任务不是线程化的,而是一个接一个地启动,因此可能会出现一些问题有了这个小小的变化,我就想到了。我以产生 50/50 结果的方式做到了这一点。中断会起作用,但线程永远不会干净地退出。有时它们会继续运行,但会停止未来线程的执行,有时它们会因中断而出现大量错误而退出,有时中断什么也不做。上次我运行这个程序时,程序停止了任何未来线程的执行,但没有停止当前线程。有没有办法退出线程而不进入线程实际执行的模块?