如何从Python中的多处理模块中确定当前进程是父进程还是子进程?如何确定当前运行的进程是否为父进程?
具体来说,我在导入的模块中有一些代码行,只需要运行一次 - 当代码第一次运行时(即不会运行子进程启动的时间,并导入该模块)。
在主模块中,我能够使用if __name__ == '__main__':
来实现此目的,但是这在导入的模块中不起作用。
在相关的,当前的代码情况包括:
import multiprocessing as mp
pool = mp.Pool(processes=7, maxtasksperchild=1)
all_items = [pool.apply_async(sub_process, args=(value,) for value in all_values]
for item in all_items:
item.get()
你的问题让我困惑。在这种情况下'__name__'是一种红鲱鱼。在函数'sub_process'中,你在一个子进程中。在这个函数之外,你在父进程中。你为什么不问你想达到什么? – RobertB
@RobertB - 相应地编辑问题。 – kyrenia
您可以将代码分隔成独立的功能,如“设置”。那么你在启动你的进程之前调用'module1.setup()'? – RobertB