Junior — Middle
Welke functies biedt de structuur WaitGroup in de programmeertaal Go voor het synchroniseren van goroutines?
sobes.tech AI
Antwoord van AI
In de programmeertaal Go wordt de structuur sync.WaitGroup gebruikt om meerdere goroutines te synchroniseren, zodat de hoofd-goroutine kan wachten tot de anderen klaar zijn.
Belangrijkste methoden van WaitGroup:
-
Add(delta int)— verhoogt of verlaagt de teller van verwachte goroutines. Wordt meestal aangeroepen voordat de goroutines worden gestart. -
Done()— verlaagt de teller met 1, wordt aan het einde van het werk van de goroutine aangeroepen. -
Wait()— blokkeert de uitvoering totdat de teller nul is.
Voorbeeld van gebruik:
var wg sync.WaitGroup
wg.Add(3) // wachten op 3 goroutines
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // signaleer voltooiing
fmt.Println("Goroutine", id)
}(i)
}
wg.Wait() // wacht tot alle goroutines klaar zijn
fmt.Println("Alle goroutines zijn voltooid")
Op deze manier helpt WaitGroup bij het coördineren van parallelle uitvoering en zorgt ervoor dat het programma niet te vroeg eindigt.