go range time.tick
func case1() {
for range time.Tick(5 * time.Second) {
fmt.Println("start")
doFuc()
fmt.Println("end")
}
}
doFuc的内容如果超过了5s,在这个time周期无法完成,第二次time.Tick就会到来,但是doFunc是不会重入的。但是doFuc运行完成后会接着进入下一轮循环
初步了解原理(没有验证 8.4 ),这是一个无缓冲chan,doFuc没有完成前,chan内容无法取出,下次time.Tick会被阻塞,直到doFuc完成