使用多处理时代码挂起

时间:2017-07-18 19:13:16

标签: python-2.7 multiprocessing ipython-parallel

我想在我的计算机上跨单独的核心运行一个简单的功能。我的电脑有四个核心。

首先,一个简单的功能:

def exp(x):

    return x**2

现在我想给这个函数分别使用四个数字,并使用不同的核心来应用函数,以便并行完成计算。

我这样想:

import multiprocessing as mp

if __name__ == "__main__":
    check = [1, 5, 6, 8]
    pool = mp.Pool( mp.cpu_count())
    results = pool.map(exp, check)

但这似乎执行然后它被挂起,所以我不确定我在这里正确使用池。

我也试过这个:

results = [pool.apply_async(cube, args=(x,)) for x in range(1,7)]
output = [p.get() for p in results]

但它再次挂在最后一行。

我在ancondas spyder环境中使用ipython,这也可能是为什么?也许我需要使用ipythons并行?

编辑:

我的问题的答案在这里找到,multiprocessing in IPython console on Windows machine - if __name_ requirement

0 个答案:

没有答案