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