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.