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