【发布时间】:2019-12-09 06:53:30
【问题描述】:
我想编写一个返回计数为[1,2,3,4] 的代码,同时保持并行化的for 循环。我正在尝试从increment 函数内部更新全局数组counts,但它永远不会工作并返回[0,0,0,0]。有什么办法可以在并行循环increment 函数时从increment 函数更新counts 数组?
import numpy as np
import multiprocessing as mpp
import timeit
start = timeit.default_timer()
num=5
counts=np.zeros((num,1))
def increment(k):
global counts
counts[k]=counts[k]+k
pool = mpp.Pool(4)
pool.map(increment,[k for k in range(0,num)])
print(counts)
stop = timeit.default_timer()
print('Time: ', stop - start)
【问题讨论】:
-
你应该使用没有锁的单例类。但建议不要对这些进程使用多处理:stackoverflow.com/a/1109930/12422518
标签: python