Junior — Middle
Heeft u tijdens het implementeren van uw programma gebruikgemaakt van het synchronisatiemechanisme waitgroup?
sobes.tech AI
Antwoord van AI
Ja, in Go wordt het mechanisme sync.WaitGroup vaak gebruikt om meerdere goroutines te synchroniseren. Het stelt de hoofd-goroutine in staat te wachten tot een reeks parallelle taken voltooid is.
Voorbeeld van gebruik:
var wg sync.WaitGroup
wg.Add(3) // wacht op 3 goroutines
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // signaleer voltooiing
fmt.Printf("Goroutine %d is bezig\n", id)
// wat werk
}(i)
}
wg.Wait() // wacht tot alle Done worden aangeroepen
fmt.Println("Alle goroutines zijn voltooid")
Op deze manier helpt WaitGroup om de paralleliteit correct te beheren en te garanderen dat het programma niet te vroeg eindigt.