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

Как устроен asyncio

Asyncio — это библиотека Python для асинхронного программирования, основанная на концепции event loop (цикла событий). Она использует корутины (coroutines) и ключевые слова async/await для неблокирующего выполнения задач.

Основные компоненты:

  1. Event Loop — управляет выполнением корутин и обрабатывает события (I/O, таймеры).
  2. Корутины — функции, объявленные через async def, которые могут приостанавливать выполнение через await.
  3. Футуры (Futures) — объекты, представляющие результат асинхронной операции.
  4. Задачи (Tasks) — подкласс Future, обёртка вокруг корутины для запуска в event loop.

Пример:

python
import asyncio

async def foo():
    print("Start")
    await asyncio.sleep(1)  # Неблокирующая задержка
    print("End")

async def main():
    task = asyncio.create_task(foo())  # Запуск корутины как задачи
    await task  # Ожидание завершения

asyncio.run(main())  # Запуск event loop

Принцип работы:

  • Event loop выполняет корутины по очереди.
  • При встрече await управление возвращается в loop, который может переключиться на другую задачу.
  • I/O операции выполняются асинхронно через системные вызовы (epoll/kqueue).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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