Sobes.tech
Middle+

Erzählen Sie mir von WaitGroup in Go.

sobes.tech KI

Antwort von AI

In Go wird sync.WaitGroup verwendet, um auf das Ende einer Gruppe von Goroutines zu warten. Es ist eine bequeme Möglichkeit, parallele Aufgaben zu synchronisieren.

Hauptmethoden:

  • Add(int) — erhöht den Zähler der erwarteten Goroutines.
  • Done() — verringert den Zähler, wird aufgerufen, wenn eine Goroutine beendet ist.
  • 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

Auf diese Weise hilft WaitGroup, das Ende paralleler Operationen zu kontrollieren.