Sobes.tech
Junior — Middle

Programınızı uygularken waitgroup senkronizasyon mekanizmasını kullandınız mı?

sobes.tech yapay zeka

AI'dan gelen yanıt

Evet, Go dilinde sync.WaitGroup mekanizması genellikle birkaç goroutine'nin senkronize edilmesi için kullanılır. Ana goroutine'un, paralel görevlerin tamamlanmasını beklemesine olanak tanır.

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() // tamamlandığını bildir
        fmt.Printf("Goroutine %d çalışıyor\n", id)
        // bazı işler
    }(i)
}

wg.Wait() // tüm Done çağrılana kadar bekle
fmt.Println("Tüm goroutine'ler tamamlandı")

Bu şekilde, WaitGroup, paralellik yönetimine yardımcı olur ve programın erken bitmesini engeller.