【问题标题】:Multiprocessing.Pool.Map Does Not Do AnythingMultiprocessing.Pool.Map 不做任何事情
【发布时间】:2018-09-01 11:36:45
【问题描述】:

我正在尝试多处理,因为我试图模仿互联网及其节点的工作方式。我对基本功能很好,所以我查看了文档并使用了 3.7.0 文档中最基本的示例,即我现在使用的版本。令我惊讶的是,它没有用。我使用的是 Mac OS High Sierra,版本 10.13.6,如果它与任何事情有关。为了清楚起见,这里是代码:

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    with Pool(5) as p:
        print(p.map(f, [1, 2, 3]))

我想知道为什么它不起作用,因为它没有显示任何内容,并且想要工作版本,谢谢。

For Those Who Doubt It

【问题讨论】:

标签: python python-3.x multiprocessing python-multiprocessing


【解决方案1】:

pip 安装多进程

from multiprocess import Pool

我像大多数人一样使用multiprocessing 包,但它不起作用。所以我尝试了multiprocess 包,效果很好。

【讨论】:

    【解决方案2】:

    屏幕截图表明您出于某种原因打开了解释器。

    像这样运行你的文件:python3 main.py

    【讨论】:

    • 查看本教程:learnpython.org 另外,如果答案有效,请将其标记为已接受 :)
    • @Aphrodite 出于某种原因,multiprocessing 不喜欢交互式 python 会话(“解释器”)。在这样的会话期间定义函数意味着multiprocessing 不能使用它。不知道为什么,但就是这样。
    【解决方案3】:

    对我来说,问题在于使用:

    random.seed = <SOME INT>
    

    以及任何形式的多处理。

    【讨论】:

      猜你喜欢
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 2017-12-31
      相关资源
      最近更新 更多