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