官网文档的例子
1 from multiprocessing import Process, Value, Array 2 3 def f(n, a): 4 n.value = 3.1415927 5 for i in range(len(a)): 6 a[i] = -a[i] 7 8 if __name__ == ‘__main__‘: 9 num = Value(‘d‘, 0.0) 10 arr = Array(‘i‘, range(10)) 11 12 p = Process(target=f, args=(num, arr)) 13 p.start() 14 p.join() 15 16 print num.value 17 print arr[:]
结果:
1 3.1415927
2 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
分析:模式Array,Value达到内存共享的目标
如果是自建一个对象并绑定一项value属性,及另一个list.再调用子函数。在子函数中改动对象的value及另一个list.是没有作用的。
在C++中可以通过引用,在子函数中一样可以改动
时间: 2024-10-06 15:20:48