第 74 期 2020-01-02 time.Timer 源码分析 (Go 1.14)

观看视频

分享者

欧长坤

【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

分享地址

Slides

Google Slides

参考资料