Вопрос: Как работает sync.WaitGroup и зачем он нужен?
Go
Junior
Без компании
Вопрос: Как работает sync.WaitGroup и зачем он нужен?
Ответы
WaitGroup ждёт завершения набора горутин. Add(n) перед запуском, Done() в конце, Wait() в главной.
```go
package main
import (
"fmt"
"sync"
)
func main() {
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
fmt.Println("A")
}()
go func() {
defer wg.Done()
fmt.Println("B")
}()
wg.Wait()
fmt.Println("done")
}
```