我的多处理模块有问题。我想用for循环遍历一个dict,并且进程应该为每个dictitem做一个工作。多处理的最佳方法是什么?
答案 0 :(得分:1)
the documentation of the multiprocessing module中有很多可以理解的例子。以下代码基于第一个代码,f()
是您为每个dict项执行的函数:
from multiprocessing import Pool
def f(x):
return (x[0], x[1]*x[1])
if __name__ == '__main__':
p = Pool(5)
d = {'a':1, 'b':2, 'c':3}
print list(d.iteritems())
print(p.map(f, d.iteritems()))
返回:
[('a', 1), ('c', 3), ('b', 2)]
[('a', 1), ('c', 9), ('b', 4)]