Ruby と Python の Global Interpreter Lock (GIL) 全体が Java から来ているのは、ちょっと驚くべきことです。問題を少し読んだところ、Python のドキュメントで次の抜粋が見つかりました。
Global Interpreter Lock を取り除くことはできませんか?
グローバル インタープリター ロック (GIL) は、ハイエンドのマルチプロセッサ サーバー マシンに Python を展開する際の障害と見なされることがよくあります。マルチスレッドの Python プログラムは、(ほとんど) すべての Python コードは、 GILが保持されている間に実行されます。
Python 1.5 の時代に、Greg Stein は実際に包括的なパッチ セット (「フリー スレッド」パッチ) を実装して、GIL を削除し、きめ細かなロックに置き換えました。残念ながら、(ロックが非常に効率的な) Windows でも、通常の Python コードの実行速度は、 GIL を使用するインタープリターの約 2 倍遅くなりました。Linux では、pthread ロックがそれほど効率的ではないため、パフォーマンスの低下はさらに悪化しました。
私が見つけられなかったのは、パフォーマンスへの影響の背後にある説明です。私は技術的な理由が何であるかを見つけようとしましたが、それを突き止める良い議論を見つけることができませんでした.
Ruby と同様に、ここではさらに少ない情報しか見つかりませんでした。理由は同じですか?