Sobes.tech
Middle — Senior

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

sobes.tech AI

Отговор от 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() гарантира, че програмата няма да продължи, докато всички паралелни задачи не приключат.