Golang timer定時器
阿新 • • 發佈:2018-11-08
Golang timer定時器
timer 計時器
- 用於在指定的Duration型別時間後呼叫函式或計算表示式。
- 如果只是想指定時間之後執行,使用time.Sleep()
- 使用NewTimer(),可以返回的Timer型別在計時器到期之前,取消該計時器
- 直到使用<-timer.C傳送一個值,該計時器才會過期
定義計數器
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() }