Встречается на 1% собеседований по Python
Какие ограничения накладывает GIL при разработке многопоточных приложений
GIL (Global Interpreter Lock) в Python предотвращает одновременное выполнение байт-кода несколькими потоками, что ограничивает истинный параллелизм в CPU-зависимых задачах.
Основные ограничения:
- Потоки не ускоряют CPU-bound задачи (например, вычисления), так как GIL переключается между потоками.
- Полезен только для I/O-bound задач (сетевые запросы, чтение файлов), где потоки освобождают GIL во время ожидания.
Пример:
python
import threading
def cpu_task():
sum(range(10**6)) # CPU-bound - GIL мешает параллелизму
threads = [threading.Thread(target=cpu_task) for _ in range(4)]
for t in threads:
t.start()
for t in threads:
t.join()
# Время выполнения ~4x хуже, чем в multiprocessingОбходные пути:
multiprocessing(каждый процесс имеет свой GIL).- Использование C-расширений (например, NumPy), которые отпускают GIL.
- Асинхронность (asyncio) для I/O-bound задач.

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