我正在尝试并行化代码。我对python(或一般的编程)缺乏经验,并且不知道如何解决这种竞争状况。这是我正在尝试做的摘要。
import threading
zz=0
def multiprocessing_func(x):
global zz
for i in range(100000):
zz+=1
z=[]
for i in range(30):
t=threading.Thread(target=multiprocessing_func,args=(i,))
z.append(t)
for i in range(30):
z[i].start()
for i in range(30):
z[i].join()
返回的zz的值为3000000。我的目标是在此处使用多处理模块,使用Process或在可能的情况下使用Pool复制结果。我想这里的问题在于如何一次在多个线程中访问和编辑变量zz。另外,如果我尝试更改数组的元素而不是zz,必须如何更改代码。我在Windows 10中使用Spyder。请帮助!!