Sobes.tech
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/atomic pakket — 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