Senior
Waarom hebben we een WaitGroup nodig in deze taak?
sobes.tech AI
Antwoord van AI
WaitGroup in Go wordt gebruikt om goroutines te synchroniseren. Bij taken waarbij meerdere goroutines worden gestart, stelt WaitGroup de hoofdthread in staat te wachten tot alle gestartte goroutines zijn voltooid voordat het verdergaat met uitvoeren. Dit voorkomt dat het programma voortijdig afsluit of naar de volgende fase gaat wanneer achtergrondactiviteiten nog niet zijn voltooid.
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
// werk van de goroutine
fmt.Println("Goroutine", id, "voltooid")
}(i)
}
wg.Wait() // wacht tot alle goroutines klaar zijn
fmt.Println("Alle goroutines voltooid")
Op deze manier zorgt WaitGroup voor een correcte coördinatie en voorkomt racecondities of voortijdig beëindigen van het programma.