Встречается на 1% собеседований по Python
В чем разница между TaskGroup и gather в asyncio
TaskGroup (появился в Python 3.11) и gather служат для запуска нескольких корутин одновременно, но имеют ключевые отличия:
- Обработка ошибок:
TaskGroupавтоматически отменяет все задачи при первой ошибке (какasyncio.wait(return_when=FIRST_EXCEPTION))gatherпо умолчанию ждёт завершения всех задач (можно изменить черезreturn_exceptions=True)
-
Контекст:
TaskGroupработает как контекстный менеджер (async with)gather— обычная функция
-
Добавление задач:
- В
TaskGroupзадачи добавляются динамически черезcreate_task() gatherпринимает готовый список корутин
- В
Пример:
python
# TaskGroup
async with asyncio.TaskGroup() as tg:
tg.create_task(coro1())
tg.create_task(coro2()) # При ошибке в coro1 все отменится
# gather
await asyncio.gather(coro1(), coro2()) # Обе выполнятся до концаTaskGroup предпочтительнее для сложных сценариев с зависимыми задачами, gather — для простого параллельного выполнения.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы