以下代码,逻辑上的执行结果 应该是:
1
2
3
...
exit...
但是名实际上是:
1
exit...
为什么会这样呢
14 ctx := context.Background()
15 ctx1, cannel := context.WithTimeout(ctx, times)
16
17 go func(ctx context.Context) {
18 count := 1
19 for {
20 select {
21 case <-ctx.Done():
22 fmt.Println("exit....")
23 return
24 default:
25 fmt.Println(count)
26 count++
27 time.Sleep(times * 10)
28 }
29 }
30 }(ctx1)
31
32 time.Sleep(time.Second * 3)
33 cannel()
有疑问加站长微信联系(非本文作者)