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