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