Sobes.tech
Junior — Middle

Können Sie erklären, was eine Wait Group ist und wofür sie in der Programmierung verwendet wird?

sobes.tech KI

Antwort von AI

Wait Group in Go ist eine Struktur aus dem Paket sync, die verwendet wird, um auf das Ende einer Gruppe von Goroutines zu warten. Sie ermöglicht es der Hauptgoroutine (oder einer anderen), zu blockieren, bis alle gestarteten Goroutines ihre Arbeit beendet haben.

Hauptmethoden:

  • Add(int) — erhöht den Zähler der erwarteten Goroutines.
  • Done() — verringert den Zähler, wird beim Abschluss einer Goroutine aufgerufen.
  • Wait() — blockiert die Ausführung, bis der Zähler null ist.

Beispiel für die Verwendung:

var wg sync.WaitGroup
wg.Add(2) // warten auf 2 Goroutines

go func() {
    defer wg.Done()
    // Arbeit der ersten Goroutine
}()

go func() {
    defer wg.Done()
    // Arbeit der zweiten Goroutine
}()

wg.Wait() // warten auf beide

Dies ist nützlich, um parallele Aufgaben zu synchronisieren und ein vorzeitiges Beenden des Programms zu verhindern.