Встречается на собеседованиях • сегодня
Кто переключает потоки в GIL
GIL (Global Interpreter Lock) в CPython управляется самим интерпретатором. Переключение потоков происходит автоматически:
- По таймеру: примерно каждые 5 мс (значение
sys.getswitchinterval()) - При блокирующих операциях: I/O (файлы, сетевые запросы),
time.sleep(), вызовы C-функций, освобождающие GIL
Пример:
python
import threading
def worker():
print("Поток начал работу")
# Здесь GIL может переключиться на другой поток
[x*x for x in range(10_000_000)] # CPU-bound операция
print("Поток завершил работу")
threads = [threading.Thread(target=worker) for _ in range(2)]
for t in threads:
t.start()
for t in threads:
t.join()Важно: GIL не позволяет выполняться Python-коду нескольких потоков одновременно, даже на многоядерных CPU. Для параллелизма лучше использовать multiprocessing или асинхронные подходы (asyncio).

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