定时器

定时器原理

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

 

posted @ 2019-05-24 17:27  Jin同学  阅读(152)  评论(0)    收藏  举报