>文章来自于:https://reading.developerlearning.cn/reading/74-2020-01-02-time-in-go-1-14/
分享者:欧长坤
## 观看视频
https://youtu.be/XJx0eTP-y9I
## 【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
## 分享地址
https://zoom.us/j/6923842137
## Slides
[Google Slides](https://docs.google.com/presentation/d/1c2mRWA-FiihgpbGsE4uducou7X5d4WoiiLVab-ewsT8/edit?usp=sharing)
## 参考资料
- [runtime: improve timers scalability on multi-CPU systems](https://github.com/golang/go/commit/76f4fd8a5251b4f63ea14a3c1e2fe2e78eb74f81)
- [runtime: make timers faster](https://github.com/golang/go/commit/6becb033341602f2df9d7c55cc23e64b925bbee2)
- [Go 夜读第 56 期:channel & select 源码分析](https://github.com/developer-learning/night-reading-go/issues/450)
- [Go 语言原本: 计时器](https://changkun.de/golang/zh-cn/part2runtime/ch06sched/timer/)
- [timer-based task scheduler](https://github.com/changkun/sched)
---
有疑问加站长微信联系(非本文作者)