demo1 通道误用导致的bug
()
| 8 | |
| 9 | // demo1 通道误用导致的bug |
| 10 | func demo1() { |
| 11 | wg := sync.WaitGroup{} |
| 12 | |
| 13 | ch := make(chan int, 10) |
| 14 | for i := 0; i < 10; i++ { |
| 15 | ch <- i |
| 16 | } |
| 17 | close(ch) |
| 18 | |
| 19 | wg.Add(3) |
| 20 | for j := 0; j < 3; j++ { |
| 21 | go func() { |
| 22 | for { |
| 23 | task := <-ch |
| 24 | // 这里假设对接收的数据执行某些操作 |
| 25 | fmt.Println(task) |
| 26 | } |
| 27 | wg.Done() |
| 28 | }() |
| 29 | } |
| 30 | wg.Wait() |
| 31 | } |
| 32 | |
| 33 | func demo01修改() { |
| 34 | wg := sync.WaitGroup{} |