Встречается на 1% собеседований по Python
В какой момент происходит переключение контекста
Переключение контекста в Python происходит при выполнении операций ввода-вывода (I/O-bound), системных вызовов или при явном вызове await в асинхронном коде. В синхронном коде GIL (Global Interpreter Lock) предотвращает параллельное выполнение байткода, но поток может быть приостановлен для других потоков.
Пример с asyncio:
python
import asyncio
async def task():
print("Start task")
await asyncio.sleep(1) # Точка переключения контекста
print("End task")
async def main():
await asyncio.gather(task(), task())
asyncio.run(main())Ключевые моменты:
- При
awaitуправление возвращается в event loop - При I/O операциях (сеть, файлы)
- При вызове
yieldв генераторах - При достижении кванта времени в потоках (обычно ~5ms)

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