Выбор ответа Middle asyncio обновлено

Чем TaskGroup лучше gather

Вопрос

Что гарантирует async with asyncio.TaskGroup() as tg: (Python 3.11+)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: К концу блока все задачи завершены, при сбое соседи отменяются. TaskGroup реализует структурированную конкурентность: задачи не переживают блок, нет «висящих» фоновых задач, а при сбое соседи отменяются.

Варианты ответа

  1. Задачи выполняются в отдельных потоках с общим циклом
  2. Задачи выполняются строго по очереди, в порядке создания
  3. Ошибки задач подавляются и логируются в конце блока
  4. К концу блока все задачи завершены, при сбое соседи отменяютсяправильный ответ

Разбор

TaskGroup реализует структурированную конкурентность: задачи не переживают блок, нет «висящих» фоновых задач, а при сбое соседи отменяются. Несколько ошибок поднимаются как ExceptionGroup, которую ловят через except*. Потоков и последовательного выполнения здесь нет, и ошибки не подавляются.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.