多处理最初返回None

时间:2016-08-26 02:07:46

标签: python python-2.7 python-multiprocessing

我目前正在编写一个利用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命令提示符运行此代码。

0 个答案:

没有答案