独学
用語集
転職
フリーランス
ツール
タグ一覧
検索...
/
TOP
いまさら聞けないIT用語辞典
GILとは
GILとは
Python
スレッド
最終更新日
2023/09/06
目次
GIL(Global Interpreter Lock)は、プログラミング言語であるPythonのユニークな機能です。
コンピュータが複数の操作を同時に処理できるように設計されていたとしても、一度に1つの操作(またはスレッド)しか実行できないようにする仕組みを指します。これにより、特定の操作は安全でシンプルなものになりますが、特定の操作ではパフォーマンスが制限されることもあります。
GILの例え
複数のバリスタがいるコーヒーショップを想像してみてください。
たとえ10人のバリスタがいたとしても、1台のエスプレッソメーカーしかない場合、全員がコーヒーを淹れたければ一人ずつ並んでエスプレッソメーカーを使わなければなりません。バリスタがどんなに熟練していても、どんなに素早くても、1台のマシンでは限界があります。
エスプレッソメーカーはGILを表していると考えてください。
一方、バリスタはタスクを実行しようとするスレッドやオペレーションを表しています。
GILのメリット
GILのメリットを一言で表すと、
プログラムを安全で管理しやすく
できます。
先ほどの例えで完璧な世界を実現しようとすると、コーヒーショップには各バリスタ用のエスプレッソメーカーがあり、すべてのバリスタがフルスピードで作業できます。
同様に、プログラミングの文脈によっては複数のオペレーションを一度に実行できることが理想的な場合もあります。しかし、マシンを1台だけにすることでプロセスを単純化し、設備コストを削減し、コーヒーの一貫性を確保できるようになります。
GILはPythonでのプログラミングを単純化し、特定のタスクをより安全で管理しやすくします。
GILのデメリット
GILのデメリットを一言で表すと、
実行速度が遅くなる可能性
があります。
先ほどの例えでは、バリスタが1台のマシンのために行列を作るため、顧客は混雑時に注文まで長く待つことになります。同様に、Pythonでは、特にマルチコアプロセッサー上で一度に多くのタスクを実行するように設計されている場合、GILのせいで特定のアプリケーションの実行速度が遅くなる可能性があります。