Sobes.tech
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 аркылуу синхрондоштуруу алардын параллелдүү иштешин камсыздайт.