我之前问过一个关于从父程序更新并行进程中的单个值的问题。可以在Python:Update Local Variable in a Parallel Process from Parent Program中找到对此的最佳答案。现在我想将这个问题扩展到数组。假设我有以下简单的程序,它遍历已定义数组的第一个单元格(类似于提供的链接):
import time
def loop(i):
while 1:
print i[0]
i[0] += 1
time.sleep(1)
if __name__ == "__main__":
from multiprocessing import Process, Array
i = Array("i", [1,2,3,4])
p = Process(target=loop, args=(i,))
p.start()
time.sleep(2)
# update i in shared memory???
从这个程序中,我如何更新“i”以便“循环”函数继续运行并读取新数组?例如,如果我想将“i”设置为 [50,51,52,53]。是否有像“值”这样的等效属性可以做到这一点?我做了很多搜索,找不到任何解决方案。非常感谢您提前。