Wait Groups

Um WaitGroup é usado para esperar que uma coleção de Goroutines termine a execução. O controle é bloqueado até que todos os Goroutines terminem de ser executados.


var wg sync.WaitGroup

// Incrementa o contador do WaitGroup
// em 1, para que espere a goroutine que
// será chamada a seguir.
wg.Add(1)

go func() {
    fmt.Println("Go1")
    wg.Done()
}()

// Trava o fluxo da goroutine atual (função main)
// até que o contador do waitGroup zere.
wg.Wait()
                        
wait_groups.go