golang timer - note

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
网友评论