Как работает асинхронность в FastAPI и asyncio под капотом?

ASGI-сервер передаёт запрос FastAPI, а event loop исполняет coroutine-задачи до точек ожидания. Пока одна задача ждёт неблокирующий I/O, цикл может выполнять другие.

Короткий ответ

Что ответить на собеседовании

ASGI-сервер передаёт запрос FastAPI, а event loop исполняет coroutine-задачи до точек ожидания. Пока одна задача ждёт неблокирующий I/O, цикл может выполнять другие.

Подробный разбор

Ответ с пояснениями

ASGI-сервер передаёт запрос FastAPI, а event loop исполняет coroutine-задачи до точек ожидания. Пока одна задача ждёт неблокирующий I/O, цикл может выполнять другие.

Обычный await не запускает отдельный поток и не гарантирует переключение, если ожидаемый объект уже готов. Async-драйверы регистрируют ожидание готовности сокета и возобновляют coroutine после события. Синхронные def-обработчики FastAPI обычно выполняет в thread pool; произвольная синхронная функция, вызванная прямо из async def, туда автоматически не переносится. Долгий CPU-код или блокирующий клиент останавливают loop. Нужны ограничения конкурентности, timeout и корректная отмена, а не только ключевое слово async.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее