Что такое wait group?



Ответ



sync.WaitGroup - это реализация счетчика, который можно инкрементировать и декрементировать, и самое главное остановить выполнение куска кода до того момента, пока значение счетчика не будет равно 0.



func main() {

wg := sync.WaitGroup{}

wg.Add(1)



go gorutinePrint(&wg)



wg.Wait()



fmt.Println("hello from main")

}



func gorutinePrint(wg *sync.WaitGroup) {

// без использования WaitGroup нет гарантий, что будет выведено

fmt.Println("hello from goroutine")



wg.Done()

}




Вывод



hello from goroutine

hello from main




@golang_interview