Back to questions
Senior
4
Расскажи подробнее про WaitGroup: для чего используется, какие методы есть?
Companies where asked
sber tech
Answer from AI
sobes.tech AI
WaitGroup в Go используется для ожидания завершения группы горутин. Это удобный способ синхронизировать параллельные задачи.
Основные методы:
Add(int): увеличивает или уменьшает счётчик ожидаемых горутин.Done(): уменьшает счётчик на 1, вызывается когда горутина завершилась.Wait(): блокирует выполнение до тех пор, пока счётчик не станет 0.
Пример использования:
var wg sync.WaitGroup
wg.Add(2) // ожидаем 2 горутины
go func() {
defer wg.Done()
// работа 1
}()
go func() {
defer wg.Done()
// работа 2
}()
wg.Wait() // ждем завершения обеих
Это позволяет главной горутине дождаться завершения всех запущенных параллельно задач.