Sobes.tech
Junior — Middle

Wie erfolgt die Koordination der Arbeit mehrerer Goroutines in Go?

sobes.tech KI

Antwort von AI

In Go wird die Koordination der Arbeit mehrerer Goroutines in der Regel mithilfe von Kanälen (channels) und dem Paket sync durchgeführt.

  • Kanäle ermöglichen es Goroutines, Daten auszutauschen und die Ausführung zu synchronisieren, indem sie den Sender oder Empfänger blockieren, bis sie bereit sind.
  • sync.WaitGroup wird verwendet, um auf das Ende einer Gruppe von Goroutines zu warten.
  • Mutex und andere Primitive aus sync sorgen für sicheren Zugriff auf gemeinsame Ressourcen.

Beispiel für die Verwendung eines Kanals zur Synchronisation:

ch := make(chan int)
func() {
    // Arbeit ausführen
    ch <- 1 // Abschluss signal
}()

<-ch // auf das Signal warten

Auf diese Weise ermöglichen Kanäle und Synchronisationsprimitive eine effiziente Koordination paralleler Aufgaben.