マルチプロセッシングを使用して複数のプロセス間でディクショナリを共有する方法
共有キュー上で動作し、グローバル ディクショナリを利用する複数のプロセスを作成する場合結果のストレージでは、正確なデータ操作を保証するために同期の問題に対処することが重要です。
に対する 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 サイトの他の関連記事を参照してください。