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.