语音解读
图文解释
timer 计时器
定义计数器 timer := time.NewTimer(time.Second * 2) 停止定时器 timer.Stop() 强制的修改timer中规定的时间 timer.Reset(0)
ticker 周期性的ticker
按照指定的周期来调用函数或计算表达式。
通常会使用go新开一个线程,否则会
定义一个ticker
ticker := time.NewTicker(time.Millisecond * 500)
停止ticker
ticker.Stop()
Ticker触发
For t := range ticker.C {
//do something
}
Demo
package main
import (
"fmt"
"time"
"sync"
)
func main() {
ticker := time.NewTicker(5 * time.Second)
quit := make(chan int)
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
fmt.Println("child goroutine bootstrap start")
for {
select {
case <- ticker.C:
fmt.Println("ticker .")
case <- quit:
fmt.Println("work well .")
ticker.Stop()
return
}
}
fmt.Println("child goroutine bootstrap end")
}()
time.Sleep(10 * time.Second)
quit <- 1
wg.Wait()
}