gpt4 book ai didi

python - 如何在 Python 多处理模块中使用 Pool.join()?

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:17 25 4
gpt4 key购买 nike

代码如下:

def function(index):
print('start process '+str(index))
time.sleep(1)
print('end process '+str(index))
return str(index)

if __name__ == '__main__':
pool = Pool(processes=3)
for i in range(4):
res = pool.apply_async(function,args=(i,))
print(res.get())
pool.close()
print('done')

和输出:

start process 0
end process 0
0
start process 1
end process 1
1
start process 2
end process 2
2
start process 3
end process 3
3
done

在我看来,如果我不使用 pool.join(),代码应该只打印“完成”,仅此而已,因为 pool.join() 的功能是“等待工作进程退出',但现在没有 pool.join(),它会得到相同的结果。我真的不明白。

最佳答案

在您的代码中,方法get()join() 具有相同的效果。它还会等待过程完成,因为您想得到它的结果。

如果您将它从您的代码中删除,您将看到首先打印“完成”:

done
start process 0

关于python - 如何在 Python 多处理模块中使用 Pool.join()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45894026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com