Junior — Middle
Bir Go programında tüm çocuk goroutine'lerin tamamlandığını nasıl belirleyebiliriz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da, tüm çocuk goroutine'lerin tamamlandığını belirlemek için genellikle sync.WaitGroup tipi kullanılarak senkronizasyon yapılır.
Örnek:
var wg sync.WaitGroup
wg.Add(3) // 3 goroutine bekleniyor
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // tamamlandığını sinyal et
// goroutine işi
fmt.Println("Goroutine", id, "tamamlandı")
}(i)
}
wg.Wait() // tüm goroutine'ler Done çağırana kadar bekler
fmt.Println("Tüm goroutine'ler tamamlandı")
Bu şekilde, WaitGroup ana goroutine'in tüm çocuk goroutine'lerin tamamlanmasını beklemesine olanak tanır.