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 помага за правилното управление на паралелното изпълнение и очакването за завършване на задачите.