Junior — Middle
Durante a implementação do seu programa, utilizou o mecanismo de sincronização waitgroup?
sobes.tech IA
Resposta da IA
Sim, no Go, o mecanismo sync.WaitGroup é frequentemente usado para sincronizar várias goroutines. Ele permite que a goroutine principal aguarde a conclusão de um conjunto de tarefas paralelas.
Exemplo de uso:
var wg sync.WaitGroup
wg.Add(3) // esperamos 3 goroutines
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // sinalizamos a conclusão
fmt.Printf("Goroutine %d em execução\n", id)
// algum trabalho
}(i)
}
wg.Wait() // aguardamos até que todos os Done sejam chamados
fmt.Println("Todas as goroutines foram concluídas")
Assim, o WaitGroup ajuda a gerenciar corretamente o paralelismo e garante que o programa não termine antes do tempo.