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