> Что такое coroutine и как он работает в Python (Python)

Уровень: junior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: Домклик, Sunlight

Стек: Python

> Пример ответа

Coroutine (сопрограмма) - это функция, которая может приостанавливать своё выполнение, сохраняя состояние, и возобновлять его позже, передавая управление обратно вызывающему коду. В Python coroutine реализованы через ключевое слово async def и операторы await.

Как это работает:

  • При вызове async def функция не выполняется сразу, а возвращает объект coroutine.
  • Выполнение начинается только при запуске через await или в цикле событий (event loop), например, asyncio.run().
  • Внутри coroutine можно использовать await для приостановки выполнения до завершения другой coroutine или ожидания I/O-операции (например, чтения из сети или файла).
  • Event loop управляет переключением между coroutine, обеспечивая конкурентное выполнение без многопоточности.

Пример:

PYTHON
import asyncio
async def fetch_data():
await asyncio.sleep(1) # имитация I/O
return "данные"
async def main():
result = await fetch_data()
print(result)
asyncio.run(main())

Coroutine отличаются от генераторов: они не используют yield для передачи значений, а await - для ожидания других coroutine. В Python 3.5+ coroutine стали основой асинхронного программирования, позволяя эффективно обрабатывать множество задач без блокировки потока.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью