Senior
Kā padarīt, lai divu worker() izpilde būtu paralēla, nevis secīga (6 sekundes → 3 sekundes)?
sobes.tech AI
Atbilde no AI
Go valodā funkciju paralēla izpilde ir iespējama, izmantojot goroutines. Ja jums ir divas funkcijas worker(), kas pašlaik tiek izpildītas secīgi un kopējais laiks ir 6 sekundes, tās palaist atsevišķās goroutines, tās tiks izpildītas paralēli, un kopējais laiks samazināsies aptuveni līdz 3 sekundēm.
Piemērs:
func() {
worker()
}()
func() {
worker()
}()
// Lai gaidītu abu goroutine pabeigšanu, izmantojiet sync.WaitGroup
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Tādējādi, funkciju palaistīšana goroutine-ēs un to sinhronizācija ar WaitGroup ļauj tās izpildīt paralēli.