multiprocessing
を使用して異なるプロセス間でrawarray
を共有する場合、すべての子供にraw array
を書き込み/変更させるのは問題ですか?Pythonマルチプロセッシング - アレイ共有?
このような場合、ロックなどを処理する必要がありますか? Pythonドキュメントから
multiprocessing
を使用して異なるプロセス間でrawarray
を共有する場合、すべての子供にraw array
を書き込み/変更させるのは問題ですか?Pythonマルチプロセッシング - アレイ共有?
このような場合、ロックなどを処理する必要がありますか? Pythonドキュメントから
:
multiprocessing.sharedctypes.RawArray(typecode_or_type、 size_or_initializer)
Return a ctypes array allocated from shared memory. typecode_or_type determines the type of the elements of the returned
配列:それはctypes型または種類の 1文字のタイプコードのいずれかである アレイモジュールで使用されます。 size_or_initializerが整数の場合、 は配列の長さを決定し、 であり、配列は最初に ゼロになります。さもなければ、size_or_initializer は、 が配列の初期化に使用され、その長さが配列の長さを決定する長さの である配列です。
Note that setting and getting an element is potentially non-atomic;
使用アレイ()の代わりに アクセスは自動的にロックを使用して 同期されていることを確認します。
したがって、プロセス間のロックと同期を可能にするmultiprocessing.sharedctypes.Arrayを使用する必要があります。
ありがとうございます。私は原子性を気にしています。 'multiprocessing.sharedctypes.Array'を使って多次元配列を定義することは可能ですか? – user3262424