Чем отличается sync.WaitGroup от errgroup.Group?

Middle
156 просмотров
AFK Offer AI

WaitGroup просто ждёт N горутин. errgroup.Group (golang.org/x/sync) добавляет: сбор первой ошибки, контекст с отменой при ошибке, лимит параллелизма (SetLimit). Паттерн: g.Go(func() error {...}), err := g.Wait(). Если одна горутина вернула ошибку — контекст отменяется, остальные должны проверять ctx.Done(). Для продакшна errgroup удобнее.

Следующий вопрос

Что такое go:noinline?