multiprocessing
のパッケージを使用しようとしていますPython
。チュートリアルを見ると、最も明確で簡単な手法は を使用しているようですpool.map
。これにより、ユーザーはプロセスの数を簡単に指定しpool.map
、関数とその関数の値のリストを渡して CPU 間で分散させることができます。私が遭遇したもう 1 つの手法は、キューを使用してワーカーのプールを管理することです。この回答pool.map
は、 、pool.apply
、およびの違いを説明する優れた仕事ですが、この例のようにキューを使用する場合と使用pool.apply_async
する場合の利点と欠点は何ですか?pool.map
質問する
14627 次
2 に答える
10
このpool.map
手法は、キューを使用した手法の「サブセット」です。つまり、と を使用しpool.map
て簡単に実装できます。つまり、キューを使用すると、プール プロセスをより柔軟に制御できます。つまり、特定の種類のメッセージをプロセスの有効期間ごとに 1 回だけ読み取ったり、プール プロセスのシャットダウン動作を制御したりできます。Pool
Queue
于 2013-09-26T17:42:53.250 に答える
4
「最も明確で最も簡単な手法」を本当に探している場合は、 を使用するconcurrent.futures.ProcessPoolExecutor
のがおそらく最も簡単な方法です。メソッドと、map
非常に使いやすくする他のいくつかのプリミティブがあります。Sにも対応していQueue
ます。
于 2013-09-26T17:47:41.170 に答える