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.