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