Sobes.tech
Junior

Welche anderen Synchronisationsmethoden für Goroutines gibt es in Go neben Kanälen?

sobes.tech KI

Antwort von AI

Neben Kanälen können in Go zum Synchronisieren von Goroutinen verwendet werden:

  • sync.WaitGroup — ermöglicht das Warten auf das Ende einer Gruppe von Goroutinen.
  • sync.Mutex — Mutex zum Schutz gemeinsamer Ressourcen vor gleichzeitiger Zugriffs.
  • sync.RWMutex — Mutex mit Trennung zwischen Lesen und Schreiben.
  • sync.Cond — Bedingungsvariable zur Benachrichtigung von Goroutinen über ein Ereignis.
  • Atomare Operationen aus dem Paket sync/atomic — für atomare Operationen mit Variablen ohne Sperren.

Beispiel für die Verwendung von WaitGroup:

var wg sync.WaitGroup
wg.Add(1)
go func() {
    defer wg.Done()
    // Arbeit der Goroutine
}()
wg.Wait() // Warten auf das Ende aller Goroutinen