1. 问题引入

2. 一言蔽之

3. 使用用例

4. 建模分析

5. 源码总结

  1. 通过WithDeadline返回的timerCtx是对cancelCtx能力的扩展,既可以通过cancelFunc取消,也可以通过截止时间取消
  2. context包中,使用golang struct继承的特性: 既能作为属性使用,也可以作为继承使用
  3. context包中使用了双向多叉树和的结构,树中节点的类型有backgroundCtx, todoCtx, cancelCtx, timerCtx, withoutCancelCtx, valueCtx这6种