Sobes.tech
Middle+

Разкажи ми за WaitGroup в Go.

sobes.tech AI

Отговор от AI

В Go sync.WaitGroup се използва за изчакване завършването на група горутини. Това е удобен начин за синхронизиране на паралелни задачи.

Основни методи:

  • Add(int) — увеличава броя на очакваните горутини.
  • Done() — намалява броя, се извиква когато горутината приключи.
  • Wait() — блокира изпълнението докато броячът не стане нула.

Пример за използване:

var wg sync.WaitGroup

wg.Add(2) // очакваме 2 горутини

go func() {
    defer wg.Done()
    // работа на първата горутина
}()

go func() {
    defer wg.Done()
    // работа на втората горутина
}()

wg.Wait() // чакаме и двете да приключат

По този начин WaitGroup помага да се контролира завършването на паралелни операции.