github.com/maikovskiys/l1tasks@v0.0.0-20230927052451-6436d7687dc9/learn/dev11/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "sync" 6 ) 7 8 /* 9 Что выведет данная программа и почему? 10 11 deadlock из за передачи копии wg в горутины. 12 13 Если передадим указатель wg, все ок 14 */ 15 func main() { 16 wg := sync.WaitGroup{} 17 for i := 0; i < 5; i++ { 18 wg.Add(1) 19 go func(wg sync.WaitGroup, i int) { 20 fmt.Println(i) 21 wg.Done() 22 }(wg, i) 23 } 24 wg.Wait() 25 fmt.Println("exit") 26 }