Sobes.tech
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.