Back to questions
Junior — Middle
59
Объясните концепцию Task в модуле asyncio и ее роль в асинхронном программировании на Python
Companies where asked
Леста
Answer from AI
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(), которая выполняется асинхронно.