观看视频
分享者
欧长坤
【Go 夜读】#74 time.Timer 源码分析 (Go 1.14)
time 是一个很有意思的包,除去需要获取当前时间的 Now 这一平淡无奇、直接对系统调用进行封装( runtime.nanotime
)的函数外,其中最有意思的莫过于它所提供的 Timer 和 Ticker 了。他们的实现,驱动了诸如 time.After
, time.AfterFunc
, time.Tick
, time.Sleep
等方法。
即将发布的 Go 1.14 将为 Timer 及其相关依赖带来大幅性能,本次分享我们就来详细分析以下 Go
1.14 中 time.Timer
的源码及其演进过程。
大纲
- 调度器与调度循环
- Timer 状态机
- Timer 的启动、终止与重置
- Timer 的触发时机
- Go 1.10 以前以及 Go 1.10 的 Timer 实现
分享时间
2020-01-02 21:00 UTC+8