Pythonにおけるマルチプロセスでの状態管理
Pythonでマルチプロセス処理を書いていて、サブプロセス内で同期的に変数を更新する(=状態を持つ)必要が出てきましたので試してみました。 公式ドキュメントを見てみると、マルチプロセスで状態を管理する方法は大きく二つあるようです。 共有メモリ(Shared Memory) 特徴 メインプロセス内の共有メモリで変数を保持する 変数の型(入れ物)としては、Value, Arrayのみが提供されている Valueは一つのデータの入れ物、Arrayは複数のデータの入れ物 中に突っ込める型は、arrayモジュールで利用できる型・cypesの型のみ => 型の制約があり concurrent.futures.ProcessPoolExecutorでは利用できない 実装サンプル arrayモジュールで使える型(今回はint)を利用する実装サンプルはこんな感じです。 並列処理で、それぞれ数値を二乗し Continue Reading