Middle — Senior
Qual é o papel do método Wg.Wait na sincronização de threads?
sobes.tech IA
Resposta da IA
O método Wg.Wait() do pacote sync em Go é usado para sincronizar várias goroutines. Ele bloqueia a execução da goroutine chamadora até que o contador WaitGroup chegue a zero, ou seja, até que todas as goroutines adicionadas através de Add() chamem Done().
Exemplo:
var wg sync.WaitGroup
wg.Add(2)
goroutine() {
defer wg.Done()
// trabalho da primeira goroutine
}()
goroutine() {
defer wg.Done()
// trabalho da segunda goroutine
}()
wg.Wait() // Espera a conclusão de ambas as goroutines
Assim, Wg.Wait() garante que o programa não continuará até que todas as tarefas paralelas tenham sido concluídas.