Sobes.tech
Junior — Middle

Wait Group nədir və proqramlaşdırmada nə üçün istifadə olunur, izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Go'da Wait Group sync paketindən olan bir quruluşdur və goroutine qrupunun tamamlanmasını gözləmək üçün istifadə olunur. Bu, əsas goroutine-in (və ya başqa birinin) bütün başlatılmış goroutine-lər işini bitirənə qədər bloklanmasına imkan verir.

Əsas metodlar:

  • Add(int) — gözlənilən goroutine-lərin sayını artırır.
  • Done() — sayını azaldır, goroutine tamamlandıqda çağırılır.
  • Wait() — sayıcı sıfır 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()
    // ilk goroutine-in işi
}()

go func() {
    defer wg.Done()
    // ikinci goroutine-in işi
}()

wg.Wait() // hər ikisinin tamamlanmasını gözləyirik

Bu, paralel tapşırıqları sinxronlaşdırmaq və proqramın erkən bitməsinin qarşısını almaq üçün faydalıdır.