Junior — Middle
Go'da geliştirme sırasında WaitGroup yapısının rolü ve amacı nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde, WaitGroup yapısı, birden fazla goroutine'yi senkronize etmek için kullanılır. Ana goroutine'un, diğer goroutine'lerin tamamlanmasını beklemesine olanak tanır.
Ana yöntemler:
- Add(int): beklenen goroutine sayısını artırır.
- Done(): sayacı 1 azaltır, goroutine tamamlandığında çağrılır.
- Wait(): sayaç 0 olana kadar yürütmeyi engeller.
Kullanım örneği:
var wg sync.WaitGroup
wg.Add(2) // 2 goroutine bekleniyor
go func() {
defer wg.Done()
// goroutine 1'in işi
}()
go func() {
defer wg.Done()
// goroutine 2'nin işi
}()
wg.Wait() // her iki goroutine'in tamamlanmasını bekler
Bu şekilde, WaitGroup, görevlerin paralel yürütülmesini ve tamamlanmasını doğru şekilde yönetmeye yardımcı olur.