Ответ
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)
}