2011-07-07 12 views
2

multiprocessingを使用して異なるプロセス間でrawarrayを共有する場合、すべての子供にraw arrayを書き込み/変更させるのは問題ですか?Pythonマルチプロセッシング - アレイ共有?

このような場合、ロックなどを処理する必要がありますか? Pythonドキュメントから

答えて

2

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を使用する必要があります。

+0

ありがとうございます。私は原子性を気にしています。 'multiprocessing.sharedctypes.Array'を使って多次元配列を定義することは可能ですか? – user3262424

関連する問題