Rubyの創造者、まつもとゆきひろがプログラミングに関係あったり、なかったりする質問に独自の視点で回答します。
[Ruby]
Q.PythonがGILを削除する計画が決定したと聞きました。GILとはなんですか。Rubyではどうなっていますか。
GIL、GVL
まず、GILとは何かというところから説明しなければなりません。GILは「Global Interpreter Lock」の略で、インタープリタが同時に動作して、問題が起きないように排他制御する仕組みです。「ぎる」と発音する人が多いようです(「じる」派もいる)。今回話題にしているPythonでは、GILと呼びますが、Rubyのソースコードでは一貫して「GVL(Global VM Lock)」と呼ばれています。
今回の記事ではGILという呼び方で統一しようと思います。
質問された通り、最近Pythonの開発コミュニティーでは、GILを削除する方向で開発を進めましょうという提案が採択されました。
最初になぜこのGILが必要であるかということについて解説し、そしてRubyとPythonがそれぞれその問題に対してどのように対処しているかということについて説明します。