Вопрос на собеседовании · Python-разработчик

Что такое GIL и как он влияет на многопоточность?

Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.

Обновлено 10 августа 2026 г.Встречается почти всегда
Короткий ответ

GIL в CPython — это блокировка, из-за которой в одном процессе только один поток одновременно исполняет байткод Python. Она упрощает защиту внутренних структур интерпретатора, но ограничивает параллелизм потоков для вычислений на чистом Python.

Для I/O-bound задач потоки остаются полезны: во время ожидания сети или диска GIL освобождается. Для CPU-bound работы обычно выбирают несколько процессов, нативные библиотеки, освобождающие GIL, либо измеряют возможности используемой версии и сборки Python.

01 · Структура ответа

Что важно сказать интервьюеру

Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:

GIL характерен для CPython, а не является общим правилом языка Python.
Он не делает пользовательские операции автоматически потокобезопасными.
Потоки подходят для блокирующего I/O, но не ускоряют чистые CPU-вычисления.
Выбор между asyncio, потоками и процессами зависит от типа нагрузки.

02 · Пример

Как объяснить на практике

Сервис, который параллельно вызывает несколько внешних API, может выиграть от потоков или asyncio. Обработка большого массива изображений на Python-коде чаще требует пула процессов или библиотеки с нативной реализацией.

Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.

03 · Ошибки

Чего избегать в ответе

Говорить, что Python вообще не поддерживает параллельное выполнение.
Считать, что GIL защищает словари и бизнес-инварианты от всех гонок.
Предлагать multiprocessing без учёта сериализации данных и стоимости процессов.

04 · Углубление

Что могут спросить следом

  1. Когда потоки в Python всё-таки полезны?
  2. Чем multiprocessing отличается от threading?
  3. Как GIL связан с asyncio?

Практика ответа

Ответьте вслух, а не про себя

Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с опорой.

Потренировать ответ