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.