【发布时间】:2015-03-09 13:24:24
【问题描述】:
我想并行化一个函数,该函数将使用 Pool 而不是 Process 更新共享字典,这样我就不会过度分配太多 cpu。
即我可以拿这个吗
def my_function(bar,results):
results[bar] = bar*10
def paralell_XL():
from multiprocessing import Pool, Manager, Process
manager = Manager()
results=manager.dict()
jobs = []
for bar in foo:
p=Process(target=my_function, args=(bar, results))
jobs.append(p)
p.start()
for proc in jobs:
proc.join()
把 paralell_XL() 函数改成这样?
def paralell_XL():
from multiprocessing import Pool, Manager, Process
manager = Manager()
results=manager.dict()
p = Pool(processes=4)
p.map(my_function,(foo,results))
尝试上述方法会出现以下错误
TypeError: unsupported operand type(s) for //: 'int' and 'DictProxy'
谢谢
【问题讨论】:
标签: python python-2.7 multiprocessing pool