Junior — Middle
Was ist die Rolle und Funktion der WaitGroup-Struktur bei der Entwicklung in Go?
sobes.tech KI
Antwort von AI
In Go wird die Struktur WaitGroup verwendet, um mehrere Goroutines zu synchronisieren. Sie ermöglicht es der Hauptgoroutine, auf das Ende einer Gruppe anderer Goroutines zu warten.
Hauptmethoden:
- Add(int): erhöht den Zähler der erwarteten Goroutines.
- Done(): verringert den Zähler um 1, wird beim Abschluss einer Goroutine aufgerufen.
- Wait(): blockiert die Ausführung, bis der Zähler auf 0 ist.
Beispiel für die Verwendung:
var wg sync.WaitGroup
wg.Add(2) // warten auf 2 Goroutines
go func() {
defer wg.Done()
// Arbeit der Goroutine 1
}()
go func() {
defer wg.Done()
// Arbeit der Goroutine 2
}()
wg.Wait() // warten, bis beide Goroutines beendet sind
Auf diese Weise hilft WaitGroup, die parallele Ausführung und das Warten auf den Abschluss von Aufgaben korrekt zu verwalten.