Sobes.tech
Junior — Middle

Wait Group nedir ve programlamada ne amaçla kullanılır, açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go'da Wait Group, sync paketinden bir yapıdır ve bir grup goroutine'nin tamamlanmasını beklemek için kullanılır. Ana goroutine'nin (veya başka birinin) tüm başlatılan goroutine'ler bitene kadar engellenmesini sağlar.

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, paralel görevleri senkronize etmek ve programın erken bitmesini önlemek için kullanışlıdır.