Junior — Middle
120
Go-да Wait Group көмегімен синхрондауды қалай жүзеге асыруға болады?
Сұралған компаниялар
AI-дан жауап
sobes.tech AI
В Go синхронизация с помощью WaitGroup реализована через структуру из пакета sync, которая позволяет ждать завершения набора горутин.
Основные методы:
Add(int)— увеличивает счетчик ожидаемых горутин.Done()— уменьшает счетчик, вызывается по завершении горутины.Wait()— блокирует выполнение до тех пор, пока счетчик не станет равен нулю.
Пример:
var wg sync.WaitGroup
wg.Add(2) // ожидаем 2 горутины
go func() {
defer wg.Done()
// работа горутины 1
}()
go func() {
defer wg.Done()
// работа горутины 2
}()
wg.Wait() // ждем завершения обеих горутин
Таким образом, WaitGroup позволяет эффективно синхронизировать выполнение нескольких параллельных задач, не используя сложные механизмы блокировок.