为什么 python 中的 pool.map 不起作用

use*_*086 2 windows multiprocessing python-3.5

import multiprocessing as mul

def f(x):
    return x**2

pool = mul.Pool(5)
rel  = pool.map(f,[1,2,3,4,5,6,7,8,9,10])

print(rel)
Run Code Online (Sandbox Code Playgroud)

当我运行上面的程序时,应用程序卡在一个循环中,无法停止。我在 windows 中使用 python 3.5,有什么问题吗?

这是我在屏幕上看到的:

我是金融数据分析的新手;我正在尝试找到一种方法来解决并行计算的大数据问题。

Bur*_*lid 6

它不起作用,因为您在 shell 中键入命令;尝试将代码保存在文件中并直接运行它。

不要忘记正确复制代码,您遗漏了一个非常重要的if语句(请参阅文档)。

将其保存到文件中,例如example.py在桌面上:

import multiprocessing as mul

def f(x):
    return x**2

if __name__ == '__main__':
    pool = mul.Pool(5)
    rel  = pool.map(f,[1,2,3,4,5,6,7,8,9,10])

    print(rel)
Run Code Online (Sandbox Code Playgroud)

然后,打开命令提示符并键入:

python %USERPROFILE%\Desktop\example.py
Run Code Online (Sandbox Code Playgroud)