Sobes.tech
Junior

Programlama dilinde (Go) tüm çalışan iş parçacıklarının tamamlandığını ve ana iş parçacığının sonuçları kullanabileceğini nasıl takip edilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, çalışan tüm goroutine'lerin tamamlanmasını izlemek için genellikle sync.WaitGroup tipi kullanılır. Bu, ana akışın tüm goroutine'ler tamamlanana kadar beklemesini sağlar.

Kullanım örneği:

var wg sync.WaitGroup

wg.Add(3) // 3 goroutine bekleniyor

for i := 0; i < 3; i++ {
    go func(id int) {
        defer wg.Done() // goroutine'un tamamlandığını bildirir
        // goroutine işi
        fmt.Println("Goroutine", id, "tamamlandı")
    }(i)
}

wg.Wait() // ana akış, wg sayacı 0 olana kadar bloklanır
fmt.Println("Tüm goroutine'ler tamamlandı, sonuçlar kullanılabilir")

Bu şekilde, WaitGroup yürütmeyi senkronize eder ve denetleyici akışın tüm paralel görevlerin tamamlanmasını beklemesini sağlar.