Junior — Middle
Pode explicar o que é um Wait Group e para que é usado na programação?
sobes.tech IA
Resposta da IA
Wait Group em Go é uma estrutura do pacote sync usada para esperar que um grupo de goroutines termine. Permite que a goroutine principal (ou outra) bloqueie até que todas as goroutines lançadas terminem o seu trabalho.
Métodos principais:
Add(int)— aumenta o contador de goroutines esperadas.Done()— diminui o contador, chamado ao terminar uma goroutine.Wait()— bloqueia a execução até que o contador seja zero.
Exemplo de uso:
var wg sync.WaitGroup
wg.Add(2) // esperamos 2 goroutines
go func() {
defer wg.Done()
// trabalho da primeira goroutine
}()
go func() {
defer wg.Done()
// trabalho da segunda goroutine
}()
wg.Wait() // esperamos que ambas terminem
Isto é útil para sincronizar tarefas paralelas e evitar que o programa termine prematuramente.