Python系统中的多处理

Python系统中的多处理,python,multiprocessing,Python,Multiprocessing,我正在进行多重处理,并尝试复制以下链接中给出的代码: 我的系统同时挂在Spyder和Jupyter上,如下所示。原因可能是什么 下面是完全复制并运行的代码。但它只是挂着 from multiprocessing import Pool def f(x): return x*x if __name__ == '__main__': with Pool(3) as p: print(p.map(f, [1, 2, 3])) 如果您阅读了,尤其是以下部分:

我正在进行多重处理,并尝试复制以下链接中给出的代码:

我的系统同时挂在Spyder和Jupyter上,如下所示。原因可能是什么

下面是完全复制并运行的代码。但它只是挂着

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    with Pool(3) as p:
        print(p.map(f, [1, 2, 3]))
如果您阅读了,尤其是以下部分:

。。。你会发现这是行不通的。解决方案是将函数
f
放在另一个.py文件中,然后导入以使其工作。例如:

文件工作者.py:

def(x):
返回x*x
修改后的代码:

来自多处理导入池的

从工人进口f
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
将池(3)作为p:
打印(p.map(f[1,2,3]))

您的代码与您链接到的代码不同-特别是您没有包含行
,如果“\uuuuu name\uuuuuuu=”、\uuuuuu main\uuuuuu':
-为什么不包括?尝试将其添加到代码中。仅供参考,多处理文档中几乎每个示例都包括这一行;它不是偶然出现的。嗨,巴尼,看来我的系统出了问题。我仍然不确定发生了什么。我已经浏览了你粘贴的链接。它挂了太多的时间,一小时后显示了以下信息:IPython笔记本电脑在多处理方面有很多问题。。它们是可以解决的,但我发现使用更传统的IDE,用普通的python解释器调用代码更容易。这是我个人的观点,但我认为Jupyter和所有其他IPython笔记本程序只有在需要“漂亮”的实时演示中才真正有用。编写真正的代码最好是使用python本身(具体来说是Cpython),因为这是所有东西的设计目的。不要胡闹“哦,我需要使用文档中没有的一个特殊技巧来实现某些功能”。如果您阅读了以:Note开头的部分,则此包中的功能要求_main__;模块可由孩子导入。这在编程指南中有所涉及,但值得在此指出。这意味着一些示例(如multiprocessing.pool.pool示例)在交互式解释器中不起作用。例如:,您将看到这将不起作用。将函数
f
放在另一个.py文件中并导入以使其工作。非常感谢,先生。