Sobes.tech
Junior — Middle

Haben Sie beim Implementieren Ihres Programms den Synchronisationsmechanismus waitgroup verwendet?

sobes.tech KI

Antwort von AI

Ja, in Go wird der Mechanismus sync.WaitGroup häufig zur Synchronisierung mehrerer Goroutines verwendet. Er ermöglicht es der Hauptgoroutine, auf den Abschluss einer Reihe paralleler Aufgaben zu warten.

Beispiel für die Verwendung:

var wg sync.WaitGroup

wg.Add(3) // warten auf 3 Goroutines

for i := 0; i < 3; i++ {
    go func(id int) {
        defer wg.Done() // Abschluss signalisieren
        fmt.Printf("Goroutine %d läuft\n", id)
        // irgendeine Arbeit
    }(i)
}

wg.Wait() // warten, bis alle Done aufgerufen wurden
fmt.Println("Alle Goroutines sind beendet")

Auf diese Weise hilft WaitGroup, die Parallelität korrekt zu verwalten und stellt sicher, dass das Programm nicht vorzeitig beendet wird.