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