from multiprocessing import Manager
时间: 2023-08-18 18:10:03 浏览: 82
`multiprocessing.Manager` 是 Python 中的一个进程间通信模块,可以用于在多个进程之间共享数据,包括共享变量、共享列表、共享字典等。在使用 `multiprocessing.Manager` 时,我们需要先创建一个 `Manager` 对象,然后通过这个对象创建共享变量、共享列表、共享字典等。
下面是一个简单的示例代码,展示了如何使用 `multiprocessing.Manager` 创建一个共享列表,并在多个进程中对其进行读写操作:
```python
from multiprocessing import Process, Manager
# 创建 Manager 对象
mgr = Manager()
# 创建共享列表
shared_list = mgr.list([0, 0, 0, 0])
def worker1(shared_list):
shared_list[0] += 1
def worker2(shared_list):
shared_list[1] += 2
def worker3(shared_list):
shared_list[2] += 3
def worker4(shared_list):
shared_list[3] += 4
if __name__ == '__main__':
print("初始值:", shared_list)
# 创建 4 个进程
p1 = Process(target=worker1, args=(shared_list,))
p2 = Process(target=worker2, args=(shared_list,))
p3 = Process(target=worker3, args=(shared_list,))
p4 = Process(target=worker4, args=(shared_list,))
# 启动进程
p1.start()
p2.start()
p3.start()
p4.start()
# 等待进程结束
p1.join()
p2.join()
p3.join()
p4.join()
# 输出结果
print("最终值:", shared_list)
```
在这个示例代码中,我们创建了一个 `Manager` 对象,然后使用这个对象创建了一个共享列表 `shared_list`,初始值为 `[0, 0, 0, 0]`。然后创建了 4 个进程,每个进程对列表中的一个元素进行加法操作。最后输出结果,可以看到列表中的每个元素都被对应的进程加了一个数。
阅读全文