用multiprocessing.Array创建一个多维数组并在数组内添加元素的示例
时间: 2023-07-15 11:13:12 浏览: 181
下面是一个使用multiprocessing.Array创建二维数组,并向其中添加元素的示例代码:
```python
import multiprocessing
def add_element(arr, row, col, value):
arr[row][col] = value
if __name__ == '__main__':
ROWS = 3
COLS = 4
# 创建一个共享内存数组
arr = multiprocessing.Array('i', ROWS*COLS)
# 将数组转换为二维列表
arr = [arr[i*COLS:(i+1)*COLS] for i in range(ROWS)]
# 使用多个进程向数组中添加元素
p1 = multiprocessing.Process(target=add_element, args=(arr, 0, 0, 1))
p2 = multiprocessing.Process(target=add_element, args=(arr, 1, 2, 2))
p3 = multiprocessing.Process(target=add_element, args=(arr, 2, 3, 3))
p1.start()
p2.start()
p3.start()
p1.join()
p2.join()
p3.join()
# 打印数组
print(arr)
```
这个程序创建了一个3行4列的二维数组,并使用三个进程向数组中添加元素。运行程序后,输出结果如下:
```
[[1, 0, 0, 0], [0, 0, 2, 0], [0, 0, 0, 3]]
```
可以看到,三个进程成功地向数组中添加了元素。请注意,在使用multiprocessing.Array创建多维数组时,需要将其转换为二维列表,以便更方便地访问和修改元素。
阅读全文