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

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