我想使用多处理来加速我的程序。
import multiprocessing
def read(li,i):
name = "char"
#updating my list here
li[i:i] = [name]
print(li)#this gives [4, 'char', 1]
def write(i):
pass
li= []
if __name__ == '__main__':
i = 1
li =[4]
p1 = multiprocessing.Process(target = read,args = (li,i,))
p2 = multiprocessing.Process(target = write,args = (i,))
p1.start()
p2.start()
p1.join()
p2.join()
print(li)#this gives [4, 1] instead of the expected [4, 'char', 1]
这只是基本程序。在原始程序中,我需要更新这样的列表。列表变量li
没有全局更新。我尝试在没有多处理的情况下做同样的事情,顺便说一句效果很好。我究竟做错了什么?