Senior
Warum brauchen wir in dieser Aufgabe eine WaitGroup?
sobes.tech KI
Antwort von AI
WaitGroup in Go wird verwendet, um Goroutinen zu synchronisieren. Bei Aufgaben, bei denen mehrere Goroutinen gestartet werden, ermöglicht der WaitGroup dem Haupt-Thread, auf den Abschluss aller gestarteten Goroutinen zu warten, bevor die Ausführung fortgesetzt wird. Dies verhindert, dass das Programm vorzeitig beendet wird oder zum nächsten Schritt übergeht, wenn Hintergrundoperationen noch nicht abgeschlossen sind.
Beispiel für die Verwendung:
var wg sync.WaitGroup
wg.Add(3) // warten auf 3 Goroutinen
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // Abschluss signalisieren
// Arbeit der Goroutine
fmt.Println("Goroutine", id, "abgeschlossen")
}(i)
}
wg.Wait() // auf Abschluss aller Goroutinen warten
fmt.Println("Alle Goroutinen sind abgeschlossen")
Auf diese Weise sorgt der WaitGroup für eine korrekte Koordination und verhindert Rennbedingungen oder ein vorzeitiges Beenden des Programms.