Senior
Hogyan lehet két worker() végrehajtását párhuzamosítani szekvenciális helyett (6 másodperc → 3 másodperc)?
sobes.tech MI
Válasz az MI-től
Go nyelven a függvények párhuzamos végrehajtásához goroutine-okat lehet használni. Ha két worker() függvényed van, amelyek jelenleg szekvenciálisan futnak és összesen 6 másodpercet vesznek igénybe, akkor külön goroutine-okban indítva párhuzamosan futnak, és az összidő kb. 3 másodpercre csökken.
Példa:
func() {
worker()
}()
func() {
worker()
}()
// A két goroutine befejezésének várásához használd a sync.WaitGroup-ot
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Így a függvények goroutine-okban való indítása és a WaitGroup-kal való szinkronizálás lehetővé teszi azok párhuzamos végrehajtását.