GIL — блокировка обычной сборки CPython, позволяющая одному потоку исполнять Python-код в интерпретаторе в данный момент и упрощающая защиту его внутренних структур.
Что такое GIL и для чего он был создан в Python?
GIL — блокировка обычной сборки CPython, позволяющая одному потоку исполнять Python-код в интерпретаторе в данный момент и упрощающая защиту его внутренних структур.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
GIL — блокировка обычной сборки CPython, позволяющая одному потоку исполнять Python-код в интерпретаторе в данный момент и упрощающая защиту его внутренних структур.
Исторически GIL упрощал управление памятью и синхронизацию, в частности работу счётчиков ссылок. Это не означает, что многопоточность бесполезна: во время блокирующего ввода-вывода блокировка может освобождаться, а некоторые нативные библиотеки выполняют вычисления без неё. CPU-bound Python-код обычно не ускоряется простым добавлением потоков. GIL также не делает составные операции бизнес-логики атомарными. Утверждение относится к обычной сборке CPython: существуют free-threaded сборки, поэтому важно уточнять интерпретатор и конфигурацию.