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