首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有序关闭Python环境

有序关闭Python环境
EN

Stack Overflow用户
提问于 2014-04-13 16:53:15
回答 1查看 68关注 0票数 2

我能想到的退出Python环境的明显方法是sys.exit()os._exit()。但是,sys.exit()不在主线程之外工作,os._exit()也不运行关闭处理程序(例如那些通过atexit.register注册的处理程序)。另外,当有非守护进程线程正在运行时,仅仅退出主线程(例如,可能通过thread.interrupt_main执行)也不会使环境的其余部分关闭。

是否有方法使Python退出另一个线程,而不是运行关闭处理程序的主线程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-13 17:07:58

这取决于你所说的“有序”是什么意思。

即使您没有任何非守护进程线程,如果从主线程调用sys.exit(),其他线程也不会以“有序”的方式完成。不能保证他们会自己收拾残局。

唯一真正干净的方法是主线程向它们应该完成和中止的其他线程发出信号(例如,通过设置一个标志或一个Event (它们定期检查)),等待它们完成(通过对它们进行join化),然后从它的main函数返回。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23045524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档