Coroutine можно ожидать напрямую через await, а для конкурентного выполнения — создать Task через asyncio.create_task(). Несколько связанных задач удобно запускать в TaskGroup или ожидать через gather().
Как создавать и ожидать задачи в asyncio?
Coroutine можно ожидать напрямую через await, а для конкурентного выполнения — создать Task через asyncio.create_task(). Несколько связанных задач удобно запускать в TaskGroup или ожидать через gather().
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Coroutine можно ожидать напрямую через await, а для конкурентного выполнения — создать Task через asyncio.create_task(). Несколько связанных задач удобно запускать в TaskGroup или ожидать через gather().
Пример структурированного запуска:
import asyncio
async def main():
async with asyncio.TaskGroup() as group:
first = group.create_task(asyncio.sleep(1, result='A'))
second = group.create_task(asyncio.sleep(1, result='B'))
print(first.result(), second.result())
asyncio.run(main())
TaskGroup доступен с Python 3.11 и ожидает завершения задач при выходе. Обычный вызов async-функции лишь создаёт coroutine-объект; его ещё нужно запланировать или await-нуть. Не оставляйте ошибки фоновых задач без наблюдения.