> Что такое 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, обеспечивая конкурентное выполнение без многопоточности.
Пример:
PYTHONimport asyncioasync def fetch_data():await asyncio.sleep(1) # имитация I/Oreturn "данные"async def main():result = await fetch_data()print(result)asyncio.run(main())
Coroutine отличаются от генераторов: они не используют yield для передачи значений, а await - для ожидания других coroutine. В Python 3.5+ coroutine стали основой асинхронного программирования, позволяя эффективно обрабатывать множество задач без блокировки потока.
> Похожие задачи по Python
Что такое контейнеризация и зачем она нужна
В каком порядке строить составной индекс для user_id и даты
Как происходит передача аргументов в функцию в Python
Какие HTTP статусы существуют и каково назначение 2xx, 3xx, 4xx, 5xx
> Похожие задачи по backend
Что такое контейнеризация и зачем она нужна
В каком порядке строить составной индекс для user_id и даты
В чем разница между процессом и потоком и какова их иерархия?
Как происходит передача аргументов в функцию в Python
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью