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