Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Python: async, coroutine, await

В чем разница между async def и def?

Вопрос проверяет понимание асинхронной модели выполнения в Python.

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

def создаёт обычную синхронную функцию, которая блокирует выполнение. async def создаёт корутину, которую можно приостанавливать и возобновлять с помощью await. Асинхронные функции подходят для сетевых операций и ввода-вывода, тогда как синхронные — для вычислительных задач. Разница в том, что async-функции работают конкурентно, а обычные — последовательно.

Длинный ответ

Почему различие важно

Синхронная и асинхронная модель выполнения по-разному используют время ожидания, что влияет на производительность и масштабируемость.

Отличия между def и async def

1. Модель выполнения

  • def — выполняется линейно, блокируя поток.

  • async def — возвращает корутину, которую можно выполнять конкурентно.

2. Использование await

Асинхронные функции могут вызывать другие корутины через await.

3. Область применения

  • def — CPU-bound задачи.

  • async def — IO-bound задачи (сети, файлы, базы).

Пример

python

def sync_func():
    return 1

async def async_func():
    return 1

Итог

Используйте async def, если функция содержит операции ожидания (сеть, БД). Для вычислительной логики лучше синхронный подход.

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • Python

    Python

Ключевые слова

#async

#coroutine

#await

Подпишись на Python Developer в телеграм