如果除主线程之外的所有线程都是守护进程,则最佳方法通常是thread.interrupt_main()-任何线程都可以使用它KeyboardInterrupt
在主线程中引发a ,这通常会导致从主线程中合理地干净退出(包括主线程中的终结器被调用等)。
当然,如果这导致某些非守护进程线程使整个过程保持活动状态,则需要os._exit
按照Mark的建议进行后续操作-但我认为这是最后的手段(有点像kill -9
;-),因为它终止了事情非常残酷(finalizer不能运行,包括try/finally
块,with
块,atexit
函数等)。