[解決済み] pythonはマルチコアで動作可能か?
2023-08-06 11:37:13
質問
質問です。PythonはGILを使用しているので、同時に別々のスレッドを実行することができるのでしょうか?
情報です。
読了後 この 私は python がマルチコアプロセッサを活用することができるかどうか、かなり不確かなものになりました。Python がよくできているとして、そのような強力な能力が欠けていると考えるのは本当に奇妙な感じがします。そこで、不確かなまま、ここで質問することにしました。もし私がマルチスレッドのプログラムを書いたら、それは複数のコアで同時に実行することができるのでしょうか?
どのように解決するのですか?
答えは、「Yes, But..." 」です。
しかし、cPythonは並行処理のために通常のスレッドを使用しているときはできません。
のようなものを使うことができます。
multiprocessing
,
celery
または
mpi4py
で並列作業を別プロセスに分割します。
あるいは、次のようなものを使うこともできます。 Jython または IronPython を使えば、GILを持たない別のインタプリタが使えます。
よりソフトな解決策は、重いCPUタスクのためにGILに抵触しないライブラリを使うことです、例えば
numpy
は GIL を保持せずに重い処理を行うことができるので、他の Python スレッドが処理することができます。 また
ctypes
ライブラリをこの方法で使用することもできます。
CPUバインドされた作業をしていない場合、pythonがIOを待っている間にGILを取得することはないので、GILの問題は完全に無視できます(一種の)。
関連
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Pythonのキャッシュライブラリはありますか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)