Встречается на 3% собеседований по Python
Какую проблему создает GIL в Python
GIL (Global Interpreter Lock) — это мьютекс, который защищает доступ к объектам Python, предотвращая одновременное выполнение байт-кода несколькими потоками. Основная проблема — ограничение параллелизма в CPU-зависимых задачах.
Проблемы:
- Многопоточные программы не ускоряются на многоядерных CPU, так как только один поток исполняется в любой момент.
- Вычислительные задачи (например, обработка чисел) страдают, в отличие от I/O-операций, где GIL менее критичен.
Пример:
python
import threading
def count():
n = 0
for _ in range(10_000_000):
n += 1
# Однопоточный вариант
count() # ~0.5 сек
# Многопоточный (2 потока)
t1 = threading.Thread(target=count)
t2 = threading.Thread(target=count)
t1.start(); t2.start()
t1.join(); t2.join() # ~1 сек (нет ускорения)Обходные пути:
- Использование процессов (
multiprocessing). - Вынос тяжелых вычислений в C-расширения (с освобождением GIL).
- Асинхронность (для I/O).

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