python多进程共享全局变量
时间: 2023-08-25 19:05:47 浏览: 144
在Python中,多进程之间共享全局变量是有难度的,因为每个进程拥有自己的地址空间,一个进程无法直接访问另一个进程的变量。不过,Python提供了一些在进程之间共享数据的方法,如使用共享内存或者使用进程池的`Manager`类。下面是一个使用`Manager`类进行多进程共享全局变量的例子:
```python
from multiprocessing import Process, Manager
def worker(i, data):
data[i] = i * 2
if __name__ == '__main__':
manager = Manager()
data = manager.dict()
processes = []
for i in range(5):
p = Process(target=worker, args=(i, data))
processes.append(p)
p.start()
for p in processes:
p.join()
print(data)
```
在这个例子中,我们使用了`Manager`类创建了一个字典`data`,然后在多个进程中访问它。由于`Manager`类使用了IPC(Inter-Process Communication)机制,所以多个进程可以共享同一个字典对象。在`worker`函数中,每个进程通过字典的索引来访问和修改自己的数据。最后,我们通过主进程打印出了整个字典的内容。
阅读全文