Sobes.tech
Junior — Middle

Hoe wordt de controle en synchronisatie van goroutines in het programma uitgevoerd?

sobes.tech AI

Antwoord van AI

In Go wordt de controle van de uitvoering en de synchronisatie van goroutines meestal gedaan met:

  • WaitGroup uit de sync-package — maakt het mogelijk te wachten tot een groep goroutines klaar is.
  • Kanalen (channels) — worden gebruikt om gegevens en signalen tussen goroutines over te dragen, wat synchronisatie garandeert.

Voorbeeld met WaitGroup:

var wg sync.WaitGroup
wg.Add(1)
go func() {
    defer wg.Done()
    // werk van de goroutine
}()
wg.Wait() // wacht tot de goroutine klaar is

Kanalen maken het bijvoorbeeld mogelijk om resultaten of afsluitsignalen over te dragen:

ch := make(chan int)
go func() {
    ch <- 42 // waarde verzenden
}()
waarde := <-ch // waarde ontvangen, synchroniseert goroutines

Dus, WaitGroup en kanalen zijn de belangrijkste tools voor controle en synchronisatie van goroutines.