Senior
Hoe maak je de uitvoering van twee worker() parallel in plaats van sequentieel (6 seconden → 3 seconden)?
sobes.tech AI
Antwoord van AI
In Go kun je goroutines gebruiken voor het uitvoeren van functies in parallel. Als je twee functies worker(), die momenteel sequentieel worden uitgevoerd en in totaal 6 seconden duren, in aparte goroutines start, worden ze parallel uitgevoerd en wordt de totale tijd ongeveer teruggebracht tot 3 seconden.
Voorbeeld:
func() {
worker()
}()
func() {
worker()
}()
// Wacht tot beide goroutines klaar zijn met sync.WaitGroup
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Door functies in goroutines te starten en te synchroniseren met WaitGroup, kunnen ze parallel worden uitgevoerd.