Go语言Context包源码学习

打印 上一主题 下一主题

主题 865|帖子 865|积分 2595

0媒介

context包作为利用go进行server端开发的重要工具,其源码只有791行,不包罗注释的话预计在500行左右,非常值得我们去深入探究学习,于是在本篇条记中我们一起来观察源码的实现,知其然更要知其所以然。(当前利用go版本为1.22.2)
1核心数据布局

团体的接口实现和布局体embed图

1.1Context接口


context接口定义了四个方法:

  • Deadline方法返回context是否为timerctx,以及它的结束时间
  • Done方法返回该ctx的done channel
  • Err方法返回该ctx被取消的原因
  • Value方法返回key对应的value
2emptyCtx

先来观察源码
[code]type emptyCtx struct{}func (emptyCtx) Deadline() (deadline time.Time, ok bool) {        return}func (emptyCtx) Done()

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

天津储鑫盛钢材现货供应商

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表