Встречается на 2% собеседований по Python
Какие ограничения накладывает GIL
GIL (Global Interpreter Lock) в CPython ограничивает параллельное выполнение Python-кода в нескольких потоках. Основные ограничения:
-
Одновременное выполнение только одного потока - GIL позволяет выполнять только один поток Python за раз, даже на многоядерных процессорах.
-
Неэффективность CPU-интенсивных задач - для CPU-зависимых операций многопоточность не даёт прироста производительности.
- Проблемы с долгими операциями - если один поток выполняет долгую операцию (например, вычисления), другие потоки блокируются.
Пример:
python
import threading
def count():
n = 0
while n < 100000000:
n += 1
# Два потока выполняются последовательно из-за GIL
t1 = threading.Thread(target=count)
t2 = threading.Thread(target=count)
t1.start(); t2.start()
t1.join(); t2.join()Обходные пути:
- Использование процессов вместо потоков (модуль
multiprocessing) - Вынос CPU-интенсивных задач в C-расширения
- Использование async/await для I/O-bound задач
- Альтернативные реализации Python (Jython, IronPython) без GIL

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы