Sobes.tech
Junior — Middle

Можете ли да обясните какво е Wait Group и за какво се използва в програмирането?

sobes.tech AI

Отговор от AI

Wait Group в Go е структура от пакета sync, която се използва за изчакване на завършването на група goroutines. Тя позволява на главната goroutine (или друга) да блокира, докато всички стартирани goroutines не приключат работата си.

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

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

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

var wg sync.WaitGroup
wg.Add(2) // очакваме 2 goroutines

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

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

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

Това е удобно за синхронизиране на паралелни задачи и предотвратяване на преждевременното приключване на програмата.