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