Sobes.tech
Junior — Middle

Proqramınızı həyata keçirərkən waitgroup sinxronizasiya mexanizmasından istifadə etdinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Bəli, Go dilində sync.WaitGroup mexanizmi çox vaxt çoxlu gorutinaların sinxronizasiyası üçün istifadə olunur. Bu, əsas gorutinanın paralel tapşırıqların tamamlanmasını gözləməsinə imkan verir.

İstifadə nümunəsi:

var wg sync.WaitGroup

wg.Add(3) // 3 gorutina gözləyirik

for i := 0; i < 3; i++ {
    go func(id int) {
        defer wg.Done() // tamamlanmanı bildiririk
        fmt.Printf("Gorutina %d işləyir\n", id)
        // müəyyən iş
    }(i)
}

wg.Wait() // bütün Done çağırışlarının tamamlanmasını gözləyirik
fmt.Println("Bütün gorutinalar tamamlandı")

Beləliklə, WaitGroup paralelliyi düzgün idarə etməyə kömək edir və proqramın erkən bitməsinin qarşısını alır.