グローバルインタプリタロック
LL言語のインタプリタのスレッドが保持するスレッドセーフでないコードにより、スレッド間でリソースを共有してしまわないよう排他ロックを掛ける仕組み
この機能により、実行スレッドが1つに限定されるためマルチプロセッサの恩恵を受けることができない
グローバルバーチャルマシンロック(GVL)とも呼ぶ
GILとも略す
代表的なLLの実行環境であるMRI Ruby、CPython、V8にはGVLが存在する
マルチスレッド/プロセスまとめ(Ruby編)
メリット
速い
内部でロック/アンロックを繰り返す必要がないのでシングルスレッドのパフォーマンスが向上する。
C拡張などの拡張を統合しやすい
大量にロックをかけるVMより、ロックをかけないVMの方が作りやすい