语音解读
图文解释
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() }