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