グローバルインタプリタロック

グローバルインタプリタロック（, GIL）とは、プログラミング言語のインタプリタのスレッドによって保持されるスレッドセーフでないコードを、他のスレッドと共有してしまうことを防ぐための排他 ロックである。インタプリタのひとつのプロセスごとに必ずひとつの GIL が存在する。
プログラミング言語においてグローバルインタプリタロックを採用した場合、複数のスレッドを持つインタプリタプロセスの並行性を制限してしまう。プロセスをマルチプロセッサのマシンで実行させた場合、ほとんどあるいはまったく速度の向上が見られない。
こうしたロックを採用する理由として、下記のものがある。
インタプリタがひとつずつ GIL を持つため、GIL を持つ言語で書かれたアプリケーションは、完全な並列性を得るため別々のプロセス（すなわちインタプリタ）を持つ必要がある。
グローバルインタプリタロックを実装した言語には、下記のものがある: