Middle
Какво е функцията create_task()?
sobes.tech AI
Отговор от 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 |
Връща резултата от корутината |
| Позволява фоново изпълнение | Последователно изпълнение |
Използва се за паралелно (асинхронно) изпълнение на няколко корутини.