Sobes.tech
Назад к вопросам
Junior — Middle
58

Объясните концепцию Task в модуле asyncio и ее роль в асинхронном программировании на Python

Компании, где спрашивали
Леста

Ответ от нейросети

sobes.tech AI

В модуле asyncio в Python, Task — это объект, который оборачивает корутину и планирует её выполнение в цикле событий (event loop). Задача (Task) позволяет запускать корутины асинхронно, не блокируя основной поток, и управлять их выполнением.

Роль Task в асинхронном программировании:

  • Позволяет запускать корутины параллельно, переключаясь между ними при ожидании ввода-вывода или других событий.
  • Обеспечивает возможность отслеживать состояние корутины (завершена, приостановлена и т.д.).
  • Позволяет получить результат выполнения корутины через методы, например, await task.

Пример создания и запуска задачи:

import asyncio

async def say_hello():
    await asyncio.sleep(1)
    print("Hello")

async def main():
    task = asyncio.create_task(say_hello())
    print("Task запущена")
    await task  # ожидание завершения задачи

asyncio.run(main())

Здесь asyncio.create_task() создаёт Task из корутины say_hello(), которая выполняется асинхронно.