在Python中,多進程之間無法直接共享全局變量,因為每個進程都有自己獨立的內存空間。但是可以通過共享內存、隊列、管道等方式實現多進程間的通信和數據共享。
一種簡單的方法是使用`multiprocessing`模塊中的`Manager`對象來創建一個共享的字典或列表,然后在不同的進程中訪問和修改這個共享的數據結構。
以下是一個示例代碼:
```python
from multiprocessing import Process, Manager
def worker(shared_dict, key, value):
shared_dict[key] = value
if __name__ == '__main__':
manager = Manager()
shared_dict = manager.dict()
p1 = Process(target=worker, args=(shared_dict, 'key1', 'value1'))
p2 = Process(target=worker, args=(shared_dict, 'key2', 'value2'))
p1.start()
p2.start()
p1.join()
p2.join()
print(shared_dict)
```
在上面的代碼中,我們使用`Manager`對象創建了一個共享的字典`shared_dict`,然后在兩個不同的進程中通過`worker`函數向字典中添加鍵值對。最后打印出共享的字典內容。
除了`Manager`對象之外,還可以使用`Queue`、`Pipe`等方式實現多進程間的通信和數據共享。需要根據具體的需求選擇合適的方式來實現共享全局變量。