timer定时器使用:

Timer实际上是一种单一事件的定时器,即经过指定的时间后触发一个事件,这个事件通过其本身提供的channel进行通知。之所以叫单一事件,是因为Timer只执行一次就结束,这也是Timer与Ticker的最重要的区别之一。

使用场景
设定超时时间 如:
func WaitChannel(conn <-chan string) bool {
  timer := time.NewTimer(1 * time.Second)
 
  select {
  case <- conn:
    timer.Stop()
    return true
  case <- timer.C: // 超时
    println("WaitChannel timeout!")
    return false
  }
}
延迟执行某个方法
 
func DelayFunction() {
  timer := time.NewTimer(5 * time.Second)
 
  select {
  case <- timer.C:
    log.Println("Delayed 5s, start to do something.")
  }
}
  • time.NewTimer(d)创建一个Timer;

  • timer.Stop()停掉当前Timer;

  • timer.Reset(d)重置当前Timer;

posted @ 2020-03-12 19:53  small_lei_it  阅读(456)  评论(0编辑  收藏  举报