Встречается на собеседованиях • сегодня
Для чего нужен GIL
GIL (Global Interpreter Lock) — это механизм в CPython, который предотвращает одновременное выполнение нескольких потоков нативного кода Python. Он нужен для:
- Потокобезопасности — упрощает управление памятью, так как гарантирует, что только один поток выполняет байт-код Python в один момент времени.
- Упрощение реализации — CPython использует подсчёт ссылок для управления памятью, и GIL защищает от race conditions при изменении счётчиков.
Недостатки:
- Многопоточные программы на Python не могут эффективно использовать многоядерные процессоры для CPU-задач.
Пример:
python
import threading
def count():
n = 0
for _ in range(10_000_000):
n += 1
# Запуск в одном потоке
count() # ~0.5s
# Запуск в двух потоках (GIL мешает ускориться)
t1 = threading.Thread(target=count)
t2 = threading.Thread(target=count)
t1.start(); t2.start() # ~1s (а не 0.5s)Решение: Для CPU-задач используй multiprocessing или C-расширения (например, NumPy).

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