Sobes.tech
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.