Sobes.tech
Junior — Middle

Каква е ролята и предназначението на структурата WaitGroup при разработка на Go?

sobes.tech AI

Отговор от AI

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

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

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

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

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

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

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

wg.Wait() // чакаме и двете горутини да завършат

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