安全地退出多进程python应用程序

时间:2012-11-12 10:12:39

标签: python multiprocessing

我注意到os._exit(<num>) ::

  

退出状态为n的进程,而不调用清理处理程序,   刷新stdio缓冲区等。

sys.exit() ::

  

“only”引发异常,它只会在调用时退出进程   来自主线程

我需要一个解决方案来关闭一个多处理的应用程序,该应用程序将确保所有进程都关闭(没有左孤立)并且它以最佳状态退出。

附加功能:

我使用python多处理库创建进程,创建继承自multiprocessing.Process

的类

1 个答案:

答案 0 :(得分:1)

我最终为每个进程创建了一个Pipe。然后,当主进程关闭时,它可以向所有子进程发送一条消息,它们也应该关闭。

为了使工作正常,你必须定期检查子进程'“do loop”以查看管道中是否有消息,如果是,请检查它们是否为“现在退出“消息。