我正在使用多处理模块在不同进程上运行一段代码。 在代码中的某个点,我需要知道代码是由主进程还是由创建的子进程之一执行的。
在我尝试过的所有情况下,当前进程的名称始终是“MainProcess”:
>>> import multiprocessing
>>> multiprocessing.current_process().name
'MainProcess'
这是我可以依赖的 python 约定来确保我的代码片段由主进程运行(假设没有其他进程以这种方式命名)吗? 否则,我应该使用任何其他方法来了解哪个进程正在执行一段代码吗?
谢谢!
最佳答案
虽然可以使用 multiprocessing.current_process()
,但也许更好的替代方法是使用 multiprocessing.parent_process()
。
对于主进程,它将返回 None
。
它是在 Python 3.8 中添加的,因此在提出问题时不可用。
关于Python 多处理 : name of the main process,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30790660/