定时器
定时器的原理非常简单,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() // 关闭

浙公网安备 33010602011771号