Sobes.tech
Middle+

Go'daki WaitGroup hakkında bana bilgi ver.

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, sync.WaitGroup, bir grup goroutine'nin tamamlanmasını beklemek için kullanılır. Paralel görevleri senkronize etmenin uygun bir yoludur.

Ana yöntemler:

  • Add(int) — beklenen goroutine sayısını artırır.
  • Done() — sayacı azaltır, goroutine tamamlandığında çağrılır.
  • Wait() — sayaç sıfır 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()
    // ilk goroutine'nin işi
}()

go func() {
    defer wg.Done()
    // ikinci goroutine'nin işi
}()

wg.Wait() // her ikisinin de tamamlanmasını bekler

Bu şekilde, WaitGroup, paralel işlemlerin tamamlanmasını kontrol etmeye yardımcı olur.