ホームページ >バックエンド開発 >Python チュートリアル >Multiprocessing.Pool メソッドのうち、Apply、Apply_Async、または Map のどれを使用する必要がありますか?
Multiprocessing.Pool:Apply、Apply_Async、Map について
Python のマルチプロセッシングを使用すると、別々のプロセスでタスクを同時に実行できます。 multiprocessing.Pool は、apply、apply_async、map など、さまざまな構成で関数を実行するためのさまざまなメソッドを提供します。この記事では、例を通じてこれらのメソッドの違いを明確にします。
Apply と apply_Async
Python の組み込み apply と同様に、Pool.apply は別個の関数で関数を実行します。プロセスを実行し、完了するまでブロックします。これは、結果にすぐにアクセスする必要がある場合に適しています。
対照的に、Pool.apply_async は関数を非同期的に呼び出し、AsyncResult オブジェクトを返します。実際の結果を取得するには、AsyncResult で get() を呼び出す必要があります。これは、関数が完了するまでブロックされます。このメソッドは、結果を待っている間にメイン プロセスのブロックを避けたい場合に便利です。
Map
Pool.map は、指定された関数を複数の引数に適用し、引数と結果の順序。 apply_async とは異なり、すべての結果が利用可能になるまでブロックをマップします。この方法は、結果を特定の順序で必要とする場合、または結果を 1 つの結果に結合する場合に最適です。
概要テーブル
Method | Execution | Blocking | Result Order |
---|---|---|---|
apply | In a separate process | Yes | N/A |
apply_async | Asynchronously | No | Not guaranteed |
map | In separate processes | Yes | Preserved |
を使用します。ケース
以上がMultiprocessing.Pool メソッドのうち、Apply、Apply_Async、または Map のどれを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。