PythonのGIL(Global Interpreter Lock)は、プログラミング言語であるPythonのユニークな機能です。コンピュータが複数の操作を同時に処理できるように設計されていたとしても、一度に1つの操作(またはスレッド)しか実行できないようにする仕組みを指します。
GILは、PythonやRuby等の言語に見られる排他ロックの仕組みで、正式にはGlobal Interpreter Lock(グローバルインタプリタロック)といいます。このロックは、Pythonのバイトコードを実行するときに発生し、必ずしもCPUを使っている時だけではありません。
GILの存在は、Pythonという言語自身の特性ではなく、C言語で実装されたCPythonに付随するものです。例えばJavaで実装されたJythonは、JVMによるスレッド管理のおかげでマルチスレッド下でも競合が発生しないため、GILが存在しません。
しかし、GILを回避できるメリットよりも、C言語の資産を活用できることやアップデートが活発であるといったメリットが大きいと判断されているためか、CPythonが多く利用されているのでしょう。
以上、PythonのGILについての概要を説明しました。この記事がPythonのGILについて理解する一助となれば幸いです。