Встречается на собеседованиях • сегодня
Как устроен 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
интервью вопросы и ответы