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がそれぞれその問題に対してどのように対処しているかということについて説明します。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。