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