Python 如何从函数内部更新全局数组?
我想写一个返回计数为Python 如何从函数内部更新全局数组?,python,Python,我想写一个返回计数为[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
[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)
只需返回
计数[k]+k
,并将所需值设置为增量(k)
这是否回答了您的问题?您应该使用不带锁的单例类。但建议不要对此类过程使用多处理: