Sobes.tech
Junior — Middle

При реализирането на вашата програма използвахте ли механизма за синхронизация waitgroup?

sobes.tech AI

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