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.