Sobes.tech
Senior

Ikki worker() ni ketma-ket emas, parallel qilish uchun qanday qilish mumkin (6 sekund → 3 sekund)?

sobes.tech AI

AIdan javob

Go tilida funksiyalarni parallel bajarish uchun goroutine'lar ishlatilishi mumkin. Agar sizda hozirda ketma-ket bajarilayotgan va umumiy 6 sekund davom etadigan ikki worker() funksiyasi bo‘lsa, ularni alohida goroutine’larda ishga tushirsangiz, ular parallel ravishda bajariladi va umumiy vaqt taxminan 3 sekundga qisqaradi.

Misol:

func() {
    worker()
}()
func() {
    worker()
}()

// Ikkala goroutine tugashini kutish uchun sync.WaitGroup’dan foydalaning
var wg sync.WaitGroup
wg.Add(2)
func() {
    defer wg.Done()
    worker()
}()
func() {
    defer wg.Done()
    worker()
}()
wg.Wait()

Shu tarzda, funksiyalarni goroutine’larda ishga tushirish va WaitGroup yordamida sinxronlashtirish ularni parallel bajarishga imkon beradi.