golang中定时器实现,Ticker,Timer
Posted Leo Han
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang中定时器实现,Ticker,Timer相关的知识,希望对你有一定的参考价值。
在golang中,我们可以通过time包的Sleep、Ticker、Timer来实现定时效果。
Sleep
先看Sleep如何实现一个定时:
func main()
var flag chan int
go func()
for
time.Sleep(time.Duration(time.Second*5))
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
()
<-flag
Ticker实现:
func main()
var flag chan int
ticker := time.NewTicker(time.Duration(time.Second*5))
go func()
for
<- ticker.C
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
()
<-flag
Timer实现:
func main()
var flag chan int
timer := time.NewTimer(time.Duration(time.Second*5))
go func()
for
<- timer.C
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
timer.Reset(time.Duration(time.Second*5))
()
<-flag
这其中,Ticker是一种循环的计时器,而Timer时间到期只会运行一次,不会重复执行,除非reset超时时间,一般Timer用来进行超时的处理判断。
以上是关于golang中定时器实现,Ticker,Timer的主要内容,如果未能解决你的问题,请参考以下文章