Sobes.tech
Back to questions
Junior — Middle
92

При реализации своей программы использовали ли вы механизм синхронизации waitgroup?

Companies where asked
BWG
Кадровое агентство BWG

Answer from AI

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 помогает корректно управлять параллелизмом и гарантировать, что программа не завершится раньше времени.