Встречается на собеседованиях • сегодня
Почему GIL не позволяет реализовать настоящую многопоточность (multithreading) в Python
GIL (Global Interpreter Lock) — это механизм в CPython, который позволяет выполняться только одному потоку Python за раз, даже на многоядерных системах. Это ограничение связано с тем, что управление памятью в CPython не является потокобезопасным.
Основные причины:
- Безопасность памяти: GIL защищает структуры данных интерпретатора от гонки (race conditions).
- Упрощение реализации: CPython изначально проектировался с GIL, чтобы избежать сложной синхронизации.
- Ограничение производительности: Даже при наличии нескольких потоков, только один выполняет байт-код Python одновременно.
Пример:
python
import threading
def count():
n = 0
for _ in range(10_000_000):
n += 1
threads = [threading.Thread(target=count) for _ in range(4)]
for t in threads:
t.start()
for t in threads:
t.join()Здесь потоки не ускоряют выполнение из-за GIL. Для CPU-задач лучше использовать multiprocessing или асинхронность.

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