Global Interpreter Lock

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Global Interpreter Lock (GIL) - це механізм інтерпретатора, що гарантує те, що в кожен момент часу виконується код лише однієї ниті, для уникнення конкурентного доступу до спільних структур даних. В мовах, що реалізують GIL, завжди існує один GIL для кожного процесу інтерпретатора. Прикладами реалізацій інтерпретаторів, які використовують GIL, є CPython та CRuby.

Програми, написані на мовах з GIL, можуть використовувати процеси для досягнення повної конкурентності, так як кожен процес матиме свій екземпляр інтерпретатора і власний GIL. В іншому випадку GIL створює серйозну перешкоду конкурентності - ціна, яку платять за динамізм мови.

Переваги застосування цього механізму включають:

  • збільшення швидкості однопоточних програм (немає необхідності блокувати кожну структуру даних окремо)
  • проста інтеграція з бібліотеками мови C, які зазвичай не є потокобезпечними.



Дивись також[ред.ред. код]

Посилання[ред.ред. код]