17

Pythonでアプリを作成していますが、いくつかのタスクを同時に実行する必要があります。モジュールマルチプロセッシングはクラスProcessを提供し、concurrent.futuresモジュールはクラスProcessPoolExecutorを持っています。どちらもタスクを実行するために複数のプロセスを使用しているようですが、APIは異なります。なぜ一方を他方の上に使用する必要があるのですか?

私はconcurrent.futuresがPython3で追加されたことを知っているので、それがより良いと思いますか?

4

1 に答える 1

13

concurrent.futures の動機はPEPでカバーされています。

私の実際の経験では、concurrent.futures は、長時間実行されるタスクの送信と状況の監視のためのより便利なプログラミング モデルを提供します。私が最近、concurrent.futures を使用して作成したプログラムには、2 ~ 3 時間のウィンドウで受信ファイルのディレクトリを監視し、タスクに到着した各ファイルを変換し、送信するなどの作業が含まれていました。ProcessPoolExecutor によって返される将来のオブジェクトを使用すると、タスクのステータスを追跡し、中間ステータス レポートなどを便利な方法で提供できます。

于 2012-07-23T18:23:12.230 に答える