Встречается на 1% собеседований по Python
Как GIL влияет на выполнение кода
GIL (Global Interpreter Lock) — это механизм в CPython, который предотвращает одновременное выполнение байт-кода несколькими потоками. Это означает, что даже в многопоточной программе только один поток может выполняться в любой момент времени (за исключением операций ввода-вывода и некоторых вызовов C-расширений).
Основные последствия:
- Многопоточные Python-программы не могут эффективно использовать многоядерные процессоры для CPU-задач.
- Потоки полезны только для I/O-bound задач (сетевые запросы, чтение файлов).
- Для CPU-bound задач лучше использовать
multiprocessingили асинхронные подходы.
Пример:
python
import threading
def cpu_task():
sum(range(10**7)) # CPU-bound операция
# Запуск двух потоков (не ускорит выполнение из-за GIL)
t1 = threading.Thread(target=cpu_task)
t2 = threading.Thread(target=cpu_task)
t1.start(); t2.start()
t1.join(); t2.join()Альтернативы: multiprocessing, asyncio, C-расширения (например, numpy обходит GIL).

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