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() // чакаме и двете да приключат
Това е удобно за синхронизиране на паралелни задачи и предотвратяване на преждевременното приключване на програмата.