Which one is wrong???
1 | func Tick() { |
熟悉Golang的应该都用过Timer、Ticker、After,这里记录一下在使用中遇到的坑。
在使用Timer时,创建过多的Timer导致CPU增高。具体原因可查看golang语言Api系统中CPU功耗优化300倍的过程
如何正确使用
After 一次性定时器
1 | func AfterFunc() { |
Tick 永久定时器
1 | func Tick() { |
错误的使用方式
1 |
|
这种方式会导致创建无数个timer协程,导致timer处理线程占用大量CPU资源。
如何优雅的关闭Timer
1 | func startTimer(f func()) chan struct{} { |