Как создавать и ожидать задачи в asyncio?

Coroutine можно ожидать напрямую через await, а для конкурентного выполнения — создать Task через asyncio.create_task(). Несколько связанных задач удобно запускать в TaskGroup или ожидать через gather().

Короткий ответ

Что ответить на собеседовании

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-нуть. Не оставляйте ошибки фоновых задач без наблюдения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее