🟡 Средний · 2 очк. Разное / продвинутое
Что делает пакет golang.org/x/sync/errgroup?
A Группирует ошибки в одну
B Управляет группой горутин с отменой при первой ошибке
C Логирует ошибки
D Повторяет ошибочные операции
Объяснение вопроса

errgroup.Group запускает несколько горутин (g.Go(fn)) и ждёт их завершения (g.Wait()). Возвращает первую возникшую ошибку. С errgroup.WithContext при первой ошибке отменяется переданный context - остальные горутины могут завершиться по ctx.Done().

g, ctx := errgroup.WithContext(ctx)
g.Go(func() error { return fetchURL(ctx, url1) })
g.Go(func() error { return fetchURL(ctx, url2) })
if err := g.Wait(); err != nil {
    return err
}

Удобная замена ручному sync.WaitGroup и сбору ошибок из каналов.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.