フリーキーズ | 独学プログラミング

GILとは

GIL(Global Interpreter Lock)は、プログラミング言語であるPythonのユニークな機能です。
コンピュータが複数の操作を同時に処理できるように設計されていたとしても、一度に1つの操作(またはスレッド)しか実行できないようにする仕組みを指します。これにより、特定の操作は安全でシンプルなものになりますが、特定の操作ではパフォーマンスが制限されることもあります。

プログラミング学習でお悩みの方へ

HackATAは、エンジニアを目指す方のためのプログラミング学習コーチングサービスです。 経験豊富な現役エンジニアがあなたの学習をサポートします。

✓ 質問し放題

✓ β版公開中(2025年内の特別割引)

HackATAの詳細を見る

GILの例え

複数のバリスタがいるコーヒーショップを想像してみてください。
たとえ10人のバリスタがいたとしても、1台のエスプレッソメーカーしかない場合、全員がコーヒーを淹れたければ一人ずつ並んでエスプレッソメーカーを使わなければなりません。バリスタがどんなに熟練していても、どんなに素早くても、1台のマシンでは限界があります。

GILのメリット

GILのメリットを一言で表すと、プログラムを安全で管理しやすくできます。

先ほどの例えで完璧な世界を実現しようとすると、コーヒーショップには各バリスタ用のエスプレッソメーカーがあり、すべてのバリスタがフルスピードで作業できます。
同様に、プログラミングの文脈によっては複数のオペレーションを一度に実行できることが理想的な場合もあります。しかし、マシンを1台だけにすることでプロセスを単純化し、設備コストを削減し、コーヒーの一貫性を確保できるようになります。
GILはPythonでのプログラミングを単純化し、特定のタスクをより安全で管理しやすくします。

GILのデメリット

GILのデメリットを一言で表すと、実行速度が遅くなる可能性があります。

先ほどの例えでは、バリスタが1台のマシンのために行列を作るため、顧客は混雑時に注文まで長く待つことになります。同様に、Pythonでは、特にマルチコアプロセッサー上で一度に多くのタスクを実行するように設計されている場合、GILのせいで特定のアプリケーションの実行速度が遅くなる可能性があります。

この記事をシェア