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++
}
}

