Sobes.tech
Middle+

Fale-me sobre WaitGroup em Go.

sobes.tech IA

Resposta da IA

Em Go, sync.WaitGroup é utilizado para aguardar a conclusão de um grupo de goroutines. É uma forma conveniente de sincronizar tarefas paralelas.

Métodos principais:

  • Add(int) — aumenta o contador de goroutines esperadas.
  • Done() — diminui o contador, chamado quando uma goroutine termina.
  • 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() // aguardamos a conclusão de ambas

Assim, WaitGroup ajuda a controlar a finalização de operações paralelas.