ホームページ >バックエンド開発 >Python チュートリアル >マルチプロセッシングを使用して複数のプロセス間で辞書を共有するにはどうすればよいですか?

マルチプロセッシングを使用して複数のプロセス間で辞書を共有するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-27 08:38:10326ブラウズ

How to Share a Dictionary Between Multiple Processes Using Multiprocessing?

マルチプロセッシングを使用して複数のプロセス間でディクショナリを共有する方法

共有キュー上で動作し、グローバル ディクショナリを利用する複数のプロセスを作成する場合結果のストレージでは、正確なデータ操作を保証するために同期の問題に対処することが重要です。

に対する 1 つのアプローチ共有辞書へのアクセスを同期するには、Manager オブジェクトを使用します。 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。