from multiprocessing import Array
时间: 2023-07-07 19:17:38 浏览: 89
`multiprocessing.Array` 是一个共享数组,可以在多个进程之间共享数据。它的用法类似于 Python 中的列表,但是相比于普通的列表,`multiprocessing.Array` 可以在多进程中安全地进行读写操作。
下面是一个简单的示例代码,展示了如何使用 `multiprocessing.Array` 创建一个共享数组,并在多个进程中对其进行读写操作:
```python
from multiprocessing import Process, Array
# 创建共享数组,初始值为 0
shared_array = Array('i', [0, 0, 0, 0])
def worker1(shared_array):
shared_array[0] += 1
def worker2(shared_array):
shared_array[1] += 2
def worker3(shared_array):
shared_array[2] += 3
def worker4(shared_array):
shared_array[3] += 4
if __name__ == '__main__':
print("初始值:", shared_array[:])
# 创建 4 个进程
p1 = Process(target=worker1, args=(shared_array,))
p2 = Process(target=worker2, args=(shared_array,))
p3 = Process(target=worker3, args=(shared_array,))
p4 = Process(target=worker4, args=(shared_array,))
# 启动进程
p1.start()
p2.start()
p3.start()
p4.start()
# 等待进程结束
p1.join()
p2.join()
p3.join()
p4.join()
# 输出结果
print("最终值:", shared_array[:])
```
在这个示例代码中,我们使用 `Array` 创建了一个长度为 4 的共享数组,初始值都为 0。然后创建了 4 个进程,每个进程对数组中的一个元素进行加法操作。最后输出结果,可以看到数组中的每个元素都被对应的进程加了一个数。
阅读全文