Junior
Proqramlaşdırma dilində (Go) bütün işləyən goroutinlərin tamamlandığını və idarəedici axının nəticələrdən istifadə edə biləcəyini necə izləmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, işləyən bütün goroutinlərin tamamlanmasını izləmək üçün adətən sync.WaitGroup tipi istifadə olunur. Bu, əsas axının bütün goroutinlərin tamamlanmasını gözləməsinə imkan verir.
İstifadə nümunəsi:
var wg sync.WaitGroup
wg.Add(3) // 3 goroutin gözlənilir
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // goroutin tamamlandığını bildirir
// goroutin işi
fmt.Println("Goroutin", id, "tamamlandı")
}(i)
}
wg.Wait() // əsas axın, wg sayacı 0 olana qədər bloklanır
fmt.Println("Bütün goroutinlər tamamlandı, nəticələr istifadə oluna bilər")
Bu şəkildə, WaitGroup icraatı sinxronlaşdırmağa və idarə edən axının bütün paralel tapşırıqların tamamlanmasını gözləməsinə imkan verir.