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