Senior
Эки worker() ишин бирдей убакытта ишке ашыруу кандай (6 секунд → 3 секунд)?
sobes.tech AI
AIден жооп
Go тилинде функцияларды параллелдүү иштетүү үчүн goroutine'дерди колдонууга болот. Эгерде сизде учурда биринин артынан бири иштеп жаткан жана жалпы 6 секундга созулган эки worker() функциясы бар болсо, аларды бөлөк goroutine'дерде иштетсеңиз, алар параллелдүү иштейт жана жалпы убакыт болжол менен 3 секундга кыскарган болот.
Мисал:
func() {
worker()
}()
func() {
worker()
}()
// Эки goroutine бүтүшүн күтүү үчүн sync.WaitGroup колдонуу
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Мындай жол менен, функцияларды goroutine'дерде иштетип, WaitGroup аркылуу синхрондоштуруу алардын параллелдүү иштешин камсыздайт.