Sobes.tech
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.