Встречается на собеседованиях • сегодня

Что отвечает за переключение контекста в asyncio

В asyncio переключение контекста между корутинами (тасками) управляется event loop. Основные моменты:

  1. Event loop решает, когда переключаться между задачами, основываясь на:
    • await выражениях (точки переключения)
    • I/O операциях (когда сокет/файл готов)
    • таймерах (asyncio.sleep())
    • явных вызовах loop.call_soon()
  1. Пример переключения:
python
async def task1():
    print("Start 1")
    await asyncio.sleep(1)  # Точка переключения
    print("End 1")

async def task2():
    print("Start 2")
    await asyncio.sleep(0.5)  # Точка переключения
    print("End 2")

asyncio.run(asyncio.gather(task1(), task2()))
  1. Важно: переключение происходит только в точках await, если корутина не отдает управление (например, долгий синхронный код), event loop блокируется.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы