七叶笔记 » golang编程 » Golang并发编程,6、时钟定时器,初始化、停止与重置

Golang并发编程,6、时钟定时器,初始化、停止与重置

time.NewTicker

 func NewTicker(d Duration) *Ticker  

NewTicker返回一个包含通道的新Ticker,该通道将在定时期后发送通道上的时间。

duration参数指定周期时间。

持续时间d必须>0;d<=0,NewTicker将会panic。

 func func1()  {
ticker := time.NewTicker(time.Second * 1)
i := 0
for {
t1 := time.Now()
<-ticker.C
fmt.Println(time.Since(t1),i)
i++
}
}  

ticker.Stop()

Stop的作用是:关闭当前定时器。

ticker停止后,将不再发送通道,但Stop并不会关闭该通道。

 func func2()  {
ticker := time.NewTicker(time.Second * 1)
i := 0
for {
t1 := time.Now()
if i == 3{
ticker.Stop()
break
}
<-ticker.C
fmt.Println(time.Since(t1),i)
i++
}
}  

ticker.Reset()

func (t *Ticker) Reset(d Duration)

ticker.Reset的作用是停止并复位ticker。

 func func3() {
ticker := time.NewTicker(time.Second * 1)
ticker.Reset(time.Second * 2)
i := 0
for {
t1 := time.Now()
if i == 5{
ticker.Stop()
break
}
<-ticker.C
fmt.Println(time.Since(t1),i)
i++
}
}  

相关文章