Встречается на собеседованиях • сегодня
Что блокирует GIL в Python
GIL (Global Interpreter Lock) — это механизм в CPython, который блокирует выполнение байт-кода одновременно в нескольких потоках. Он предотвращает конкурентное выполнение Python-кода, но разрешает параллельное выполнение операций ввода-вывода (I/O-bound задачи) и нативных расширений (C-код, который освобождает GIL).
Что блокирует GIL:
- Выполнение Python-байткода в нескольких потоках одновременно (CPU-bound задачи).
- Параллельную работу потоков для чисто Python-кода.
Что НЕ блокирует GIL:
- Операции ввода-вывода (например, чтение файлов, сетевые запросы).
- Нативные расширения (NumPy, Cython), если они явно отпускают GIL.
Пример:
python
import threading
def cpu_bound_task():
# Этот код будет выполняться последовательно из-за GIL
result = sum(i * i for i in range(10**6))
threads = [threading.Thread(target=cpu_bound_task) for _ in range(4)]
for t in threads:
t.start()
for t in threads:
t.join()Здесь потоки не ускорят выполнение, так как GIL блокирует параллельное исполнение.

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