time.Sleep居然会失效???求原理???

elitah · · 2732 次点击
主机是linux(ubuntu 14.04、ubuntu 16.06都试过) 系统都是386 ![捕获.PNG](https://static.studygolang.com/180330/22fdbfabaeddb84a45b13ac1fde2601b.PNG)
#1
更多评论
```golang func main() { go aaa() for { select { case <-ch: //拿到锁 fmt.Println("call") case <-time.After(5 * time.Second): //超时5s fmt.Println("5 sec call") } } } ```
#2
抱歉是我没说明白,我知道加for循环不会退出,但是aaa中的time.Sleep失效 按逻辑,新增加goroutine来执行func aaa,主线程执行到select应该阻塞等待chan,然后CPU调度到goroutine,延时3秒,然后往chan写数据,主线程收到数据,打印call 问题就是应该是3秒后打印call,而不是立即打印
#3