私はマルチスレッドPython(CPython)を学んでいます。私はGILと、どのようにスレッド化を単一のコアに制限するのかを知っています(ほとんどの状況で)。標準ライブラリのどの部分をマルチコアで実行できますか?
私は入出力機能をマルチコアで実行できることを知っていますが、標準ライブラリのどの部分を複数のコアで実行できるかのリストを見つけることができませんでした。私は、urllibはマルチコアで動くことができると信じており、別のコア上のスレッドでダウンロードできるようにしています(ただし、ドキュメントの確認はできません)。
私が見つけようとしているのは、標準ライブラリのどの部分がマルチコアを実行するのかです。これはドキュメントでは指定されていないようです。ドキュメントから撮影
:
、圧縮やハッシュなど、計算集約型のタスクを実行するときGILを解放するようにしかし、標準またはサードパーティ製の一部の拡張モジュールは、設計されています。また、GILはI/O実行時に常に解放されます。
スパムプロセス以外のマルチコアを実行することはできません。スレッドについて話していると、すべてがマルチスレッドで実行できますが、スピードパフォーマンスは向上しませんが、I/O操作はありません。 – Netwave
ありがとう@DanielSanchez。ですから、マルチスレッドPythonは、グローバルインタプリタのロックが解除されたI/Oを実行する場合を除いて、多くのことを得ることはできません。特定の重いタスクを実行する場合には、このことがわかります。私の編集を参照してください。私が知りませんが、Python標準ライブラリのどの部分がロックを解放し、マルチコアスレッドを可能にするのでしょうか。 – geminiCoder