Что такое WaitGroup?

Junior
1.4k просмотров
AFK Offer AI

sync.WaitGroup — счётчик для ожидания завершения группы горутин. Три метода: Add(n) — увеличить счётчик, Done() — уменьшить на 1, Wait() — блокироваться до нуля.

var wg sync.WaitGroup

for i := 0; i < 5; i++ { wg.Add(1) go func() { defer wg.Done() // работа }() }

wg.Wait() // ждём все 5 горутин

Важно: Add вызывай до запуска горутины, не внутри. Иначе Wait может вернуться раньше, чем горутина начнёт работу.

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

Чем REST отличается от gRPC?