Вопрос проверяет знание корутин, их роли в асинхронном программировании и основных операций с ними.
Корутина — это специальная функция в Python, которая может быть приостановлена и возобновлена в будущем. Корутины используются для выполнения асинхронного кода, который не блокирует выполнение других задач. Они создаются с помощью ключевых слов async и await.
Корутины в Python — это функции, которые могут "замораживать" свое выполнение, ожидая завершения асинхронных операций, и "возобновлять" его позже. Это позволяет эффективно управлять несколькими задачами одновременно, не блокируя главный поток выполнения.
Корутина определяется с помощью ключевого слова async перед функцией.
async def my_coroutine():
print("Start")
await some_async_function()
print("End")Ключевое слово await указывает, что выполнение этой корутины должно быть приостановлено до завершения указанной асинхронной операции.
Пример
import asyncio
async def greet(name):
await asyncio.sleep(1)
print(f"Hello, {name}!")
async def main():
await greet("Alice")
await greet("Bob")
asyncio.run(main())Вывод:
(Задержка 1 секунда)
Hello, Alice!
(Задержка 1 секунда)
Hello, Bob!Вместо ожидания блокирующих операций корутины позволяют выполнять другие задачи, что делает их идеальными для ввода-вывода, запросов к базам данных и работы с сетевыми запросами.
Повышение производительности за счет одновременного выполнения задач.
Удобный синтаксис для работы с асинхронными операциями.