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

标签 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)

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

这是我在屏幕上看到的:

我是财务数据分析的新手;我正试图找到一种方法来通过并行计算解决大数据问题。

最佳答案

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

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

将其保存到文件中,例如桌面上的 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)

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

python %USERPROFILE%\Desktop\example.py

关于windows - 为什么 python 中的 pool.map 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36733680/

相关文章:

Python 多处理 : What is the better implementation to terminate daemon process when the parent process terminated?

c++ - CreateFile 能否返回 NULL?

mysql - 用于在 Windows 中打开 mysql 控制台的简单 .bat 文件?

python - 从 Linux 上的 Web 服务器在 Windows 上运行任务的最佳方式

c - 对话框不工作 - win32 api

python - 如何在 Python 中与 Pool.map() 并行运行数据进程?

python - 防止多处理 "runaway bugs"

xpath - 如何在Python中使用XPath限制特定xml元素的开始和结束标记之间的元素提取范围?

Python GUI - 2.7 至 3.5

python - 进程以退出代码 139 结束(被信号 11 : SIGSEGV) 中断