Senior
Ako spraviť, aby vykonávanie dvoch worker() bolo paralelné namiesto sekvenčného (6 sekúnd → 3 sekundy)?
sobes.tech AI
Odpoveď od AI
V jazyku Go môžete použiť gorutiny na paralelné vykonávanie funkcií. Ak máte dve funkcie worker(), ktoré sa momentálne vykonávajú sekvenčne a celkovo trvajú 6 sekúnd, ich spustením v samostatných gorutinách sa budú vykonávať paralelne a celkový čas sa približne zníži na 3 sekundy.
Príklad:
func() {
worker()
}()
func() {
worker()
}()
// Aby ste počkali na dokončenie oboch gorutín, použite sync.WaitGroup
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Týmto spôsobom spustenia funkcií v gorutinách a synchronizácie cez WaitGroup umožňuje ich paralelné vykonávanie.