Вопрос проверяет понимание асинхронной модели выполнения в Python.
def создаёт обычную синхронную функцию, которая блокирует выполнение. async def создаёт корутину, которую можно приостанавливать и возобновлять с помощью await. Асинхронные функции подходят для сетевых операций и ввода-вывода, тогда как синхронные — для вычислительных задач. Разница в том, что async-функции работают конкурентно, а обычные — последовательно.
Синхронная и асинхронная модель выполнения по-разному используют время ожидания, что влияет на производительность и масштабируемость.
def и async defdef — выполняется линейно, блокируя поток.
async def — возвращает корутину, которую можно выполнять конкурентно.
awaitАсинхронные функции могут вызывать другие корутины через await.
def — CPU-bound задачи.
async def — IO-bound задачи (сети, файлы, базы).
python
def sync_func():
return 1
async def async_func():
return 1
Используйте async def, если функция содержит операции ожидания (сеть, БД). Для вычислительной логики лучше синхронный подход.