Sobes.tech
Назад к вопросам
Middle — Senior
134

Какова роль метода Wg.Wait в синхронизации потоков?

Компании, где спрашивали
КасперскийКасперский

Ответ от нейросети

sobes.tech AI

Метод Wg.Wait() из пакета sync в Go используется для синхронизации нескольких горутин. Он блокирует выполнение вызывающей горутины до тех пор, пока счетчик WaitGroup не станет равен нулю, то есть пока все горутины, добавленные через Add(), не вызовут Done().

Пример:

var wg sync.WaitGroup
wg.Add(2)

go func() {
    defer wg.Done()
    // работа первой горутины
}()

go func() {
    defer wg.Done()
    // работа второй горутины
}()

wg.Wait() // Ждем завершения обеих горутин

Таким образом, Wg.Wait() гарантирует, что программа не продолжит выполнение, пока все параллельные задачи не завершатся.