Junior — Middle
Wie wird die Kontrolle über die Ausführung und Synchronisation der Goroutinen im Programm durchgeführt?
sobes.tech KI
Antwort von AI
In Go wird die Kontrolle der Ausführung und Synchronisation von Goroutines in der Regel mit:
- WaitGroup aus dem Paket
sync— ermöglicht das Warten auf das Ende einer Gruppe von Goroutines. - Kanälen (channels) — werden verwendet, um Daten und Signale zwischen Goroutines zu übertragen und so die Synchronisation sicherzustellen.
Beispiel mit WaitGroup:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// Arbeit der Goroutine
}()
wg.Wait() // wartet auf das Ende der Goroutine
Kanäle erlauben es beispielsweise, Ergebnisse oder Abschluss-Signale zu übertragen:
ch := make(chan int)
go func() {
ch <- 42 // Wert senden
}()
wert := <-ch // Wert empfangen, synchronisiert die Goroutines
Daher sind WaitGroup und Kanäle die wichtigsten Werkzeuge für Kontrolle und Synchronisation von Goroutines.