IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Golang context 使用

    Yiran\'s Blog发表于 2019-09-30 18:33:32
    love 0
    背景 链接到标题 前段时间在写 Cluster API Provider 的时候,经常会使用 context 传递参数,当时只是按照其他项目中的方式快速的实现,并没有认真的了解 context 具体包含什么,为了解决什么问题,这次来聊一下。 P.S. 虽然写了一周的 Golang,但是对于标准库有什么还一无所知,找时间应该认真过一遍的。。 定义与使用 链接到标题 先看定义: Package context defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes. 当一个 goroutine 调用其他 goroutine,随着层级变多,我们想要在外层达到控制的效果 在必要场景下传递 必需 的数据 其中 Context 这个 interface 中定义了 4 个方法,具体如下: type Context interface { Deadline() (deadline time.Time, ok bool) Done() <-chan struct{} Err() error Value(key interface{}) interface{} } 在 context 包中实现了4个函数,平时也都是使用这些函数:


沪ICP备19023445号-2号
友情链接