我是Multiprocessing的新手,我正在尝试在Jupyter笔记本上运行基本的第一个示例here,并且它从未停止过。我复制了以下代码:
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]))
我什至试图像这样重写它: enter image description here
我在Windows 7上从Anaconda Navigator运行jupyter笔记本
任何指导将不胜感激
答案 0 :(得分:0)
在尝试几次您的代码以及您链接到的页面上的第一个示例的代码后,我未能复制问题。代码运行平稳,在运行代码后完全停止,并返回给我:
CPU时间:0.09秒,内存:14548 KB
池中的工作进程将在池的工作队列的整个期间内保持活动。因此,代码的难度和排队几乎是零,进程应该在几秒钟内杀死自己。
当您成为Multiprocessing的新闻时,我将重复使用的基本方法:
当不使用Pool时,必须始终在使用join()之前调用close()或终止(),但这与您的问题无关。我根本看不到您的程序如何或为什么不应该停止运行。 但是,我建议您尝试使用另一个编译器-甚至可能是另一个在线编译器(如jdoodle.com),以查看执行代码时返回的结果。
编辑:因此,事实上,图片框的底部有一个边缘,我想说这个过程已经完成了。您怎么知道您的代码不会停止运行?