Senior
Чӣ гуна иҷрои ду worker()-ро ба ҷои пайдарпайӣ ба таври параллелӣ кардан мумкин аст (6 сония → 3 сония)?
sobes.tech AI
Ҷавоб аз AI
Горутинларни ишлатиб, Go тилида функцияларни параллел бажариш мумкин. Агар сизда икки worker() функцияси бўлса, улар ҳозирда навбатма-навбат ишлаётган бўлса ва умумий вақт 6 сонияни ташкил қилса, уларни алоҳида горутинларда ишга туширсангиз, улар параллел ишлайди ва умумий вақт тахминан 3 сонияга қисқаради.
Масалан:
func() {
worker()
}()
func() {
worker()
}()
// Икки горутиннинг тугашини кутмоқ учун, sync.WaitGroup-дан фойдаланинг
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Шу тарзда, функцияларни горутинларда ишга тушириш ва WaitGroup орқали синхронлаштириш уларнинг параллел бажарилишини таъминлайди.