Назад к вопросам
Junior — Middle
88
Какое назначение у конструкции Wait Group в синхронизации горутин?
Компании, где спрашивали
Twinby
IDT
Ответ от нейросети
sobes.tech AI
WaitGroup в Go используется для синхронизации нескольких горутин. Она позволяет основной горутине (или любой другой) ждать завершения группы горутин.
Основное назначение WaitGroup — отслеживать количество активных горутин и блокировать выполнение до тех пор, пока все они не завершатся.
Пример использования:
var wg sync.WaitGroup
wg.Add(3) // ожидаем завершения 3 горутин
for i := 0; i < 3; i++ {
go func(id int) {
defer wg.Done() // сигнализируем о завершении горутины
// работа горутины
fmt.Println("Горутина", id, "завершена")
}(i)
}
wg.Wait() // ждем, пока счетчик не станет 0
fmt.Println("Все горутины завершены")
Таким образом, WaitGroup помогает координировать параллельное выполнение и гарантирует, что программа не продолжит работу, пока все необходимые горутины не закончатся.