【发布时间】:2015-06-11 20:20:14
【问题描述】:
我正在使用多处理模块在不同的进程上运行一段代码。 在代码中的某个时刻,我需要知道代码是由主进程执行还是由创建的子进程之一执行。
在我尝试过的所有情况下,当前进程的名称始终是“MainProcess”:
>>> import multiprocessing
>>> multiprocessing.current_process().name
'MainProcess'
这是我可以依赖的 python 约定来确保我的代码由主进程运行(假设没有其他进程以这种方式命名)? 否则,我应该使用其他方法来知道哪个进程正在执行一段代码吗?
谢谢!
【问题讨论】:
-
我看到主进程的
type与子进程不同。这可能是测试它的更好方法。 -
>>> type(multiprocessing.current_process())multiprocessing.process._MainProcess>>> type(Process())multiprocessing.process.Process这看起来是一个可以接受的答案。您应该将此作为答案而不是评论发布,以便我可以接受。
标签: python python-2.7 python-multiprocessing