グローバルインタプリタロック
グローバルインタプリタロック（英: Global Interpreter Lock, GIL）とは、プログラミング言語のインタプリタのスレッドによって保持されるスレッドセーフでないコードを、他のスレッドと共有してしまうことを防ぐための排他 ロックである。インタプリタのひとつのプロセスごとに必ずひとつの GIL が存在する。

プログラミング言語においてグローバルインタプリタロックを採用した場合、複数のスレッドを持つインタプリタプロセスの並行性を制限してしまう。プロセスをマルチプロセッサのマシンで実行させた場合、ほとんどあるいはまったく速度の向上が見られない。

こうしたロックを採用する理由として、下記のものがある。
* シングルスレッドのプログラムの速度向上(すべてのデータ構造に対して別々にロックを獲得・解放する必要がなくなる)
* 通例スレッドセーフではないC言語のライブラリとの結合が容易である。

インタプリタがひとつずつ GIL を持つため、GIL を持つ言語で書かれたアプリケーションは、完全な並列性を得るため別々のプロセス（すなわちインタプリタ）を持つ必要がある。

グローバルインタプリタロックを実装した言語には、下記のものがある:
* Python (正確には C言語による実装であるCPython)
* Ruby (グローバルVMロックと呼ばれている).
Q1860
英
Concept
Q9143
プログラミング言語
Concept
Q183065
インタプリタ
Concept
Q213092
スレッド
Concept
Q1326976
スレッドセーフ
Concept
Q1047554
排他
Concept
Q1427251
ロック
Concept
Q205663
プロセス
Concept
Q1414548
並行性
Concept
Q846651
マルチプロセッサ
Concept
Q15777
C言語
Concept
Q28865
Python
MEDIA
Q15777
C言語
Concept
Q599384
CPython
EVE
Q161053
Ruby
MEDIA
Q5570451
グローバルインタプリタロック
MISC
Q5570451
グローバルインタプリタロック
MISC
Q5570451
グローバルインタプリタロック
MISC
subclass of
instance of
influenced by
influenced by
instance of
named after
named after
named after
programming language
influenced by
programming language
subclass of
subclass of