Goland中time.Timer and time.Ticker

本文介绍 TimerTickSleep 的实现机制。版本是 GO 1.9 。

thinking:goland ticker + redis 实现纳秒级的定时器。redis作为注册【配置中心-开关/触发间隔】中心,ticker作为执行中心,脚本逻辑自定义

Ticker

每隔 duration 时间会把当前的时间点放入到 channel 中,应用可以从 channel 进行读取。应用需要周期性的时间间隔,可以使用此方法。

thinking:times数组【全局变量维护全部timer\ticker】死循环进行when值比较,满足间隔时间就会进行响应的注册事件chan写入时间,触发事件发生,同时更新when值,重新下沉此事件维持最小堆形态

使用

你可能感兴趣的:(Go,语言进阶之路,go,golang,ticker,timer,定时器)