Middle
134
questionbank
Что такое функция create_task()?
Ответ от нейросети
sobes.tech AI
Функция asyncio.create_task() создает объект Task и планирует асинхронную функцию (корутину) для выполнения в цикле событий в фоновом режиме. Она возвращает объект Task, который можно использовать для получения результата корутины или отмены ее выполнения.
import asyncio
async def my_coroutine():
print("Корутина начала выполнение")
await asyncio.sleep(1)
print("Корутина закончила выполнение")
return "Готово"
async def main():
print("Создание задачи")
task = asyncio.create_task(my_coroutine())
print("Задача создана")
# Можно выполнить другие операции, пока задача работает
await asyncio.sleep(0.5)
print("Выполняются другие операции")
# Ожидание завершения задачи и получение результата
result = await task
print(f"Результат задачи: {result}")
asyncio.run(main())
Основные характеристики:
- Неблокирующее выполнение: Запускает корутину без ожидания ее завершения.
- Возвращает
Task: Позволяет управлять выполнением запущенной корутины. - Планирование: Добавляет корутину в цикл событий для выполнения.
Отличие от await my_coroutine():
create_task() |
await my_coroutine() |
|---|---|
| Не блокирует поток выполнения | Блокирует поток до завершения |
Возвращает объект Task |
Возвращает результат корутины |
| Позволяет фоновое выполнение | Последовательное выполнение |
Используется для параллельного (асинхронного) выполнения нескольких корутин.