FastAPI использует синтаксис Python для работы с асинхронным программированием с помощью механизма `async/await`.
В первом примере запросы выполняются асинхронно, потому что FastAPI использует сопрограммы (coroutines) и асинхронный event loop (uvicorn), который позволяет обрабатывать несколько запросов одновременно. Использование `time.sleep()` в этом случае не блокирует выполнение других сопрограмм, так как внутри `time.sleep()` происходит "отдание" управления event loop'у, а не потоку выполнения.
FastAPI позволяет создавать асинхронные сопрограммы, в которых можно использовать `await` для ожидания выполнения некоторых асинхронных операций, таких как запросы к базе данных или сетевые запросы.
Во втором и третьем примере запросы являются асинхронными, потому что они помечены ключевым словом `async` и используют `await`, чтобы ожидать выполнение асинхронных операций. Это позволяет эффективно использовать ресурсы сервера и обрабатывать несколько запросов одновременно.