美文网首页
golang timer - note

golang timer - note

作者: robertzhai | 来源:发表于2023-02-16 07:50 被阅读0次
image.png

Go提供了两种定时器,此处分为一次性定时器、周期性定时器。

  • 一次性定时器:定时器只计时一次,结束便停止;
  • 周期性定时器:定时器周期性进行计时,除非主动停止,否则将永久运行;
  • 通过 多个系统协程 + 四叉堆 实现
  • 一个系统协程 管理一个四叉堆

timer new-stop-reset

image.png
image.png
image.png

ticker new-stop

image.png image.png

防止内存泄露,NewTicker 要加defer 进行stop

    timeout := time.NewTicker(p.Timeout)
    defer timeout.Stop()  // 使用defer保证Ticker最后被关闭
    interval := time.NewTicker(p.Interval)
    defer interval.Stop() // 使用defer保证Ticker最后被关闭

相关文章

网友评论

      本文标题:golang timer - note

      本文链接:https://www.haomeiwen.com/subject/tbvukdtx.html