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

Как устроен механизм async/await в Python

Механизм async/await в Python основан на корутинах (coroutines) и цикле событий (event loop).

Корутины — это специальные функции, объявленные через async def. При вызове они возвращают объект корутины, а не выполняются сразу.

Await приостанавливает выполнение корутины, пока ожидаемая операция (обычно I/O) не завершится, но не блокирует поток.

Event loop управляет выполнением корутин, переключаясь между ними при ожидании.

Пример:

python
import asyncio

async def fetch_data():
    print("Начало загрузки")
    await asyncio.sleep(2)  # Имитация I/O
    print("Данные загружены")
    return "Результат"

async def main():
    task = asyncio.create_task(fetch_data())
    print("Делаем что-то параллельно")
    result = await task
    print(f"Получено: {result}")

asyncio.run(main())

Ключевые моменты:

  • async определяет корутину.
  • await передает управление обратно в event loop.
  • Для запуска используется asyncio.run().
  • Не блокирующие вызовы (например, asyncio.sleep) позволяют эффективно использовать ресурсы.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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