我以哨兵here为例。我以为我已经复制并粘贴了代码的主要部分,但是我的代码不会停止。
我尝试使用pool.map
解决另一个问题后一直尝试执行此示例。我想知道代码或我的多处理程序包是否真的有问题...
以下是我从senderle的最高答案中提取的代码:
from itertools import product
import multiprocessing
def merge_names(a, b):
return '{} & {}'.format(a, b)
names = ['Brown', 'Wilson', 'Bartlett', 'Rivera', 'Molloy', 'Opie']
with multiprocessing.Pool(processes=3) as pool:
results = pool.starmap(merge_names, product(names, repeat=2))
print(results)
我原本希望有36个“合并”名称的列表,但是该过程一直在运行,没有结束。有帮助吗?
答案 0 :(得分:0)
在阅读juanpa.arrivillaga's评论后,我查找了'jupyter笔记本计算机多处理不起作用'。首先link回答了我的问题。
您必须添加
if __name__ == '__main__' :
到您的代码。
将该功能另存为py文件并导入。
import multiprocessing
from itertools import product
import merge_names
if __name__ == '__main__':
names = ['Brown', 'Wilson', 'Bartlett', 'Rivera', 'Molloy', 'Opie']
with multiprocessing.Pool(processes=3) as pool:
results = pool.starmap(merge_names.merge_names, product(names, repeat=2))
print(results)
现在代码在Jupyter Notebook中运行。