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.