首頁 > 後端開發 > Python教學 > 如何使用多重處理在多個行程之間共享字典?

如何使用多重處理在多個行程之間共享字典?

Patricia Arquette
發布: 2024-11-27 08:38:10
原創
299 人瀏覽過

How to Share a Dictionary Between Multiple Processes Using Multiprocessing?

如何使用多重處理在多個進程之間共享字典

創建在共享隊列上運行並利用全域字典的多個進程時對於結果存儲,解決同步問題以確保準確的數據操作至關重要。

同步對共享字典的存取的一種方法是使用管理器物件。 Manager 提供了一個建立和管理可由多個進程存取的共用物件的機制。

在此特定場景中,您可以將Manager 物件合併到程式碼中,如下所示:

from multiprocessing import Process, Manager

def f(d):
    d[1] += '1'
    d['2'] += 2

if __name__ == '__main__':
    manager = Manager()

    d = manager.dict()
    d[1] = '1'
    d['2'] = 2

    p1 = Process(target=f, args=(d,))
    p2 = Process(target=f, args=(d,))
    p1.start()
    p2.start()
    p1.join()
    p2.join()

    print(d)
登入後複製

Manager.dict() 方法建立一個可由任何進程存取的共用字典。透過將此字典作為參數傳遞給每個進程,您允許它們同時操作資料。

加入進程後,主進程可以列印共享字典的內容,這將反映累積的結果由所有子進程。

這種方法可確保所有行程都可以存取同一字典,並且一個行程所做的修改對其他行程可見,從而解決了同步問題。

以上是如何使用多重處理在多個行程之間共享字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板