Что такое error group

«Что такое error group» — вопрос из категории Golang, который задают на 24% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Error group в Go — это механизм для управления группой горутин, где можно ожидать их завершения и обрабатывать ошибки. Пакет errgroup из golang.org/x/sync/errgroup предоставляет удобный способ синхронизации и обработки ошибок.

Основные особенности:

  • Группа завершается при первой ошибке (автоматически отменя контекст).
  • Ожидание завершения всех горутин через Wait().
  • Поддержка контекста для отмены.

Пример:

g, ctx := errgroup.WithContext(context.Background())

g.Go(func() error {
    return doWork(ctx)
})

g.Go(func() error {
    return anotherWork(ctx)
})

if err := g.Wait(); err != nil {
    log.Fatal(err)
}