我目前正在编写一个利用Python中的多处理工具的程序。
当我尝试从使用多处理的函数返回结果,然后打印它时,它将首先尝试打印它并打印None
。但是,一旦它运行多处理功能和过程,它将再次打印出有效的答案。这很奇怪,我已经找到了解决方法,但我很好奇是否有人对这种情况发生的原因有一个可靠的答案。
以下是我用于多处理的功能。
def ParallelProc:
if __name__ == '__main__':
core = 7
p = mp.Pool(core)
solutions = p.map(calc, NEW_IC)
return solutions
然后我尝试运行它并将其设置为变量,并按下面的方式打印
sol = ParallelProc()
print sol
我唯一的猜测是它在后台运行多处理并向前移动代码,尝试打印时没有返回任何内容。然后,一旦ParallelProc
收敛,它就会从那一点开始。
这是一个简单的工作,见下文
sol = ParallelProc()
if sol != None:
print sol
关于发生了什么的任何想法?
仅供参考我通过Windows命令提示符运行此代码。