为什么python多处理模块导致CPU完全耗尽?

abl*_*lmf 6 python

可能重复:
多处理启动太多的Python VM实例

我正在尝试使用这个简单的代码片段的python 2.6多处理模块.

from multiprocessing import Pool
p = Pool(5)
def f(x):
    return x*x

print p.map(f, [1,2,3])
Run Code Online (Sandbox Code Playgroud)

但是此代码导致我的操作系统停止响应.看起来CPU太忙了.我的代码出了什么问题?

BTW:似乎多处理模块有点危险.我不得不重新启动计算机.

jkp*_*jkp 7

您根本不保护入口点,因此每个子进程都尝试启动相同的map调用等等(进入无限!).请尝试以下方法:

if __name__ == "__main__":
    print p.map(f, [1,2,3])
Run Code Online (Sandbox Code Playgroud)

请参阅模块文档的此部分.