Golang定时器Timer与Ticker的使用方法-创新互联

Golang 定时器Timer 与Ticker的使用方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

成都创新互联长期为上千多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为汉源企业提供专业的成都网站建设、网站制作,汉源网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

定时器是什么

Golang 原生 time 包下可以用来执行一些定时任务或者是周期性的任务的一个工具

本文基于 Go 1.14,如果以下文章有哪里不对或者问题的地方,欢迎讨论学习

定时器的日常使用

Timer 相关

func NewTimer(d Duration) *Timer
func (t *Timer) Reset(d Duration) bool
func (t *Timer) Stop() bool
func After(d Duration) <-chan Time
func AfterFunc(d Duration, f func()) *Timer

func main() {
  timer := time.NewTimer(3 * time.Second)
  select {
  case <-timer.C:
   fmt.Println("3秒执行任务")
  }
  timer.Stop() // 这里来提高 timer 的回收
}

func main() {
  tChannel := time.After(3 * time.Second) // 其内部其实是生成了一个 timer
  select {
  case <-tChannel:
   fmt.Println("3秒执行任务")
  }
}

func main() {
 timer := time.NewTimer(3 * time.Second)
 for {
  timer.Reset(4 * time.Second) // 这样来复用 timer 和修改执行时间
  select {
  case <-timer.C:
   fmt.Println("每隔4秒执行任务")
  }
 }
}

分享文章:Golang定时器Timer与Ticker的使用方法-创新互联
网页网址:http://ybzwz.com/article/ceoieo.html