[英]Multprocessing, global variable not being updated
我试图使用多重处理来填充字典,然后再对其进行一些数据分析。 但是,我无法弄清楚我的进程如何/为什么不向全局列表对象添加值。 这是我的测试代码
this_list = {}
def run_this(x, y):
global this_list
this_list[x] = y
def main():
global this_list
p1 = mp.Process(target=run_this, args=(0, 3))
p2 = mp.Process(target=run_this, args=(1, 4))
p3 = mp.Process(target=run_this, args=(2, 5))
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
print(this_list)
if __name__ == "__main__":
main()
将共享内存用于“全局”变量。 官方文档中的示例
from multiprocessing import Process, Value, Array
def f(n, a):
n.value = 3.1415927
for i in range(len(a)):
a[i] = -a[i]
if __name__ == '__main__':
num = Value('d', 0.0)
arr = Array('i', range(10))
p = Process(target=f, args=(num, arr))
p.start()
p.join()
print(num.value)
print(arr[:])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.