Junior — Middle
Go-da inkişaf zamanı WaitGroup strukturunun rolu və məqsədi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, WaitGroup strukturu bir neçə goroutine-i sinxronlaşdırmaq üçün istifadə olunur. Bu, əsas goroutine-ə digər goroutine-lərin tamamlanmasını gözləməyə imkan verir.
Əsas metodlar:
- Add(int): gözlənilən goroutine-lərin sayını artırır.
- Done(): sayğacı 1 azaldır, goroutine tamamlandıqda çağırılır.
- Wait(): sayğac 0 olana qədər icraatı bloklayır.
İstifadə nümunəsi:
var wg sync.WaitGroup
wg.Add(2) // 2 goroutine gözləyirik
go func() {
defer wg.Done()
// goroutine 1-in işi
}()
go func() {
defer wg.Done()
// goroutine 2-in işi
}()
wg.Wait() // hər iki goroutine-in tamamlanmasını gözləyirik
Beləliklə, WaitGroup tapşırıqların paralel icrasını və tamamlanmasını düzgün idarə etməyə kömək edir.