以下是进程间共享状态的示例代码
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[:])
输出是
3.1415927
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
我想用字符串元素而不是整数元素初始化列表.然后我想分配列表特定的字符串元素.我的代码如下.
from multiprocessing import Process, Value, Array
def f(a):
a = ["up", "down", "left"]
if __name__ == '__main__':
arr = Array('b', [])
p = Process(target=f, args=(arr))
p.start()
p.join()
print(arr[:])
我想要输出
["up", "down", "left"]
但相反,我得到了输出
TypeError: f() missing 1 required positional argument: 'a'
[]