我尝试使用简单的方法进行多重处理:
urls = [1, 2, 3, 4]
p = Pool(2)
p.map(open, urls)
其中open()
是函数,它进行计算。
def open(url):
print(url)
当我print(url)
时,它会返回奇怪的结果:
1
2
3
4
1
2
3
4
我可以假设每个进程Pool(2)
都处理相同的计算错误。
我需要处理1处理[1, 2]
进行处理,处理2处理[3, 4]
答案 0 :(得分:0)
我认为这应该做你想做的事:
import multiprocessing
def func(x):
return x[0] + x[1]
if __name__ == "__main__":
p = multiprocessing.Pool(2)
for x in p.map(func, [(1, 2), (3, 4)]):
print(x)
输出:
3
7