定时器
定时器的原理非常简单,t.C是一个channel,在使用的时候先使用for循环阻塞住channel,再每隔设定的时间间隔往channel里面写数据,然后for循环那里再读出来即可
// 间隔一秒执行一次 func main() { var i = 0 t := time.NewTicker(time.Second) for v := range t.C { fmt.Println("hello, ", v) if (i++ > 10) { t.Stop() // 定时器一定要关 break } } } // 1秒钟之后执行,只执行一次 select { case <- time.After(time.Second): fmt.Println("getData time out") } // 上面的写法不推荐,不关闭定是你会造成内泄露,推荐使用NewTicker写 t := time.NewTicker(time.Second) select { case <- t.C: fmt.Println("after") } t.Stop() // 关闭