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.