[解決済み] マルチプロセシングプールに似たスレッディングプール?
2022-03-25 03:50:52
質問
ワーカー用のPoolクラスはありますか? スレッド マルチプロセッシング・モジュールの プールクラス ?
例えば、map関数を簡単に並列化する方法が気に入っています。
def long_running_func(p):
c_func_no_gil(p)
p = multiprocessing.Pool(4)
xs = p.map(long_running_func, range(100))
しかし、私は新しいプロセスを作成するオーバーヘッドなしでそれを行うことを望む。
GILのことは知っています。しかし、私の使用例では、関数はIOバウンドのC関数で、Pythonラッパーは実際の関数呼び出しの前にGILを解放します。
スレッドプールは自分で書かないといけないのでしょうか?
どのように解決するのですか?
今知ったのですが、実は
は
のスレッドベースのPoolインターフェースは
multiprocessing
モジュールに含まれていますが、どこか隠れていて、適切なドキュメントがありません。
を介してインポートすることができます。
from multiprocessing.pool import ThreadPool
PythonのスレッドをラップしたダミーのProcessクラスを使って実装されています。 このスレッドベースのProcessクラスは
multiprocessing.dummy
で少し触れています。
ドキュメント
. このダミーモジュールは、スレッドに基づくマルチプロセッシングのインターフェイス全体を提供するとされています。
関連
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonはWordの読み書きの変更操作を実装している
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み】CPythonのグローバルインタープリターロック(GIL)とは何ですか?