Зачем нужны tasks в asyncio

Python Middle Без компании
Зачем нужны tasks в asyncio
Ответы
Tasks в asyncio позволяют конкурентно выполнять корутины, управляя их выполнением в цикле событий. Они оборачивают корутину и запускают её в фоне, не блокируя основной поток. **Ключевые моменты:** - Запускают корутины параллельно (не путать с параллелизмом потоков). - Позволяют отслеживать состояние выполнения (pending, done, cancelled). - Можно отменять через `task.cancel()`. **Пример:** ``` import asyncio async def foo(): print("Start foo") await asyncio.sleep(1) print("End foo") async def main(): task = asyncio.create_task(foo()) # Создаём task print("Task запущен") await task # Ждём завершения asyncio.run(main()) ``` **Вывод:** ``` Task запущен Start foo End foo ``` Без `create_task` корутина `foo` выполнилась бы последовательно, а не конкурентно.