Junior — Middle
Qual é o papel e a finalidade da estrutura WaitGroup no desenvolvimento em Go?
sobes.tech IA
Resposta da IA
No Go, a estrutura WaitGroup é usada para sincronizar várias goroutines. Ela permite que a goroutine principal espere pela conclusão de um grupo de outras goroutines.
Métodos principais:
- Add(int): aumenta o contador de goroutines esperadas.
- Done(): diminui o contador em 1, chamado ao final de uma goroutine.
- Wait(): bloqueia a execução até que o contador chegue a 0.
Exemplo de uso:
var wg sync.WaitGroup
wg.Add(2) // esperamos 2 goroutines
go func() {
defer wg.Done()
// trabalho da goroutine 1
}()
go func() {
defer wg.Done()
// trabalho da goroutine 2
}()
wg.Wait() // esperamos a conclusão de ambas as goroutines
Assim, o WaitGroup ajuda a gerenciar corretamente a execução paralela e a espera pela conclusão das tarefas.