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

За счет чего происходит переключение в asyncio

Asyncio использует механизм событийного цикла (event loop) для переключения между корутинами. Когда корутина достигает точки ожидания (await), управление возвращается в event loop, который решает, какую следующую корутину запустить. Это позволяет эффективно использовать ресурсы, избегая блокировок.

Ключевые моменты:

  1. Awaitable объекты (корутины, задачи, футуры) приостанавливают выполнение корутины
  2. Event loop управляет очередью готовых к выполнению задач
  3. Неблокирующие вызовы (например, I/O операции) регистрируют callback в event loop

Пример:

python
import asyncio

async def task1():
    print("Start task1")
    await asyncio.sleep(1)  # Передача управления обратно в event loop
    print("End task1")

async def task2():
    print("Start task2")
    await asyncio.sleep(0.5)
    print("End task2")

async def main():
    await asyncio.gather(task1(), task2())

asyncio.run(main())
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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