Junior
Welke andere methoden voor het synchroniseren van goroutines bestaan er in Go naast kanalen?
sobes.tech AI
Antwoord van AI
Naast kanalen kunnen in Go voor het synchroniseren van goroutines worden gebruikt:
- sync.WaitGroup — maakt het mogelijk te wachten tot een groep goroutines is voltooid.
- sync.Mutex — mutex om gedeelde bronnen te beschermen tegen gelijktijdige toegang.
- sync.RWMutex — mutex met scheiding tussen lezen en schrijven.
- sync.Cond — voorwaardelijke variabele om goroutines te informeren over het optreden van een gebeurtenis.
- atomische operaties uit het
sync/atomicpakket — voor atomische bewerkingen op variabelen zonder locks.
Voorbeeld van gebruik van WaitGroup:
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
// werk van de goroutine
}()
wg.Wait() // wacht tot alle goroutines klaar zijn