Sobes.tech
Back to questions
Senior
8

Зачем нам нужны WaitGroup в этой задаче?

Companies where asked
Cloud.ru

Answer from AI

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() // ждем завершения всех горутин
fmt.Println("Все горутины завершены")

Таким образом, WaitGroup обеспечивает корректную координацию и предотвращает гонки или преждевременное завершение программы.