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.