Что такое корутина ?

Спросят с вероятностью 10%



Корутина (Coroutine) - это специальный вид функции, который позволяет приостанавливать и возобновлять выполнение в произвольный момент времени. Корутины обеспечивают кооперативную многозадачность, что означает, что они позволяют явно управлять потоком выполнения в своем коде.



Основные характеристики:



1️⃣ Асинхронность: Широко используются в асинхронном программировании, таком как асинхронные веб-серверы или сетевые клиенты. Они позволяют выполнять такие операции без блокирования основного потока выполнения.



2️⃣ yield/yield from: Для определения корутины используется ключевое слово yield или yield from, которое указывает места, где выполнение может быть приостановлено и возвращено обратно в вызывающий код.



3️⃣ Возобновление выполнения: Может быть возобновлена, чтобы продолжить выполнение с того же места, где она была приостановлена, и передать ей новые данные.



4️⃣ Сопрограммы: Их также называют сопрограммами (Subroutine), так как они представляют собой подпрограммы, которые могут быть вызваны и возобновлены.



Пример:

async def my_coroutine():

print("Starting coroutine")

await asyncio.sleep(1) # Асинхронное ожидание в течение 1 секунды

print("Coroutine completed")



# Вызов корутины

coro = my_coroutine()




Здесь async def обозначает определение асинхронной функции (корутины). Ключевое слово await используется для ожидания выполнения асинхронной операции, такой как asyncio.sleep(). Когда await используется внутри корутины, выполнение корутины приостанавливается до завершения операции, переданной в await, а затем возобновляется с последующей строки.



👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент



🔐 База собесов | 🔐 База тестовых