Sobes.tech
Junior — Middle

Hoe wordt de samenwerking van meerdere goroutines in Go geregeld?

sobes.tech AI

Antwoord van AI

In Go wordt de coördinatie van het werk van meerdere goroutines meestal gedaan met behulp van kanalen (channels) en het package sync.

  • Kanalen stellen goroutines in staat om gegevens uit te wisselen en de uitvoering te synchroniseren, door de zender of ontvanger te blokkeren totdat ze klaar zijn.
  • sync.WaitGroup wordt gebruikt om te wachten tot een groep goroutines klaar is.
  • Mutex en andere primitieve uit sync zorgen voor veilige toegang tot gedeelde bronnen.

Voorbeeld van het gebruik van een kanaal voor synchronisatie:

ch := make(chan int)
func() {
    // Werk uitvoeren
    ch <- 1 // signaal van voltooiing
}()

<-ch // wachten op het signaal

Op deze manier maken kanalen en synchronisatie-primitives het mogelijk om parallelle taken efficiënt te coördineren.