下面是代码:如何在Python多处理模块中使用Pool.join()?
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(),它会得到相同的结果。 我真的不明白。
可以请你接受我的答案。 – Christian