我试图在一个不返回任何内容的void函数上使用Python多进程库,并传递多个参数。以下是我的最小工作示例。
import numpy as np
from multiprocessing import Pool
dim1 = 2
dim2 = 2
test1 = np.zeros((dim1,dim2))
test2 = np.zeros((dim1,dim2))
iteration = []
for i in range(0,dim1):
for j in range(0,dim2):
iteration.append((i,j))
def testing(num1,num2):
test1[num1,num2] = 1
test2[num1,num2] = 2
if __name__ == '__main__':
pool = Pool(processes=4)
pool.starmap(testing, iteration)
print(test1)
print(test2)
问题在于变量test1和test2在初始化时打印了一个零数组。相反,我想要test1是由1组成的数组,test2是由2组成的数组。我希望代码可以实现这一点。
if __name__ == '__main__':
pool = Pool(processes=4)
pool.starmap(testing, iteration)
需要做的是:
testing(0,0)
testing(1,0)
testing(0,1)
testing(1,1)
我看过一些相关的帖子,比如这篇。这篇文章和我的区别在于,我的函数是一个空函数,而且我想让函数改变变量的值,而不是返回变量。