在完成主方法之前终止所有进程



我与主进程并行地为一些日志记录任务运行一个单独的进程。他们共享一些资源,我在主进程完成之前终止日志记录进程时遇到了问题。

完成主要的Python程序并保留子过程有什么缺点吗?我可以确定它会在退出主程序时终止吗?还是将Process.terminate()称为主脚本中的最后一个调用会更好?

只要您启动的进程daemons,主进程就会在退出之前自动终止它们:

daemon

进程的守护程序标志,一个布尔值。必须设置此项 在调用 start(( 之前。

初始值继承自创建过程。

当进程退出时,它会尝试终止其所有守护进程 子进程。

请注意,不允许守护进程创建子进程。 否则,守护进程将使其子进程成为孤儿,如果它 在其父进程退出时终止。此外,这些是 不是Unix守护程序或服务,它们是正常的进程,将是 如果非守护进程已退出,则终止(且未加入(。

此标志会自动为multiprocessing.Pool创建的进程设置,但对于Process对象默认为false。父进程将尝试在所有非守护进程子进程上调用join,因此,如果您有任何一个正在运行的子进程,它们将阻止父进程退出,直到它们退出自己。

相关内容

  • 没有找到相关文章

最新更新