Golang 上下文 Context

埃尔温薛定谔不养猫 · · 671 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

自己整理了一张图,ProcessOn 做的,可以参照着这张图去阅读学习 context 的源码。
简单的总结就是,万物( Context )基于 emptyCtx,可以认为一个 ctx 为一个节点,然后根据需求,配置成 valueCtx、cancelCtx 或 timerCtx,最终形成一条子节点包含母节点的链表。
源码内容不多,可以慢慢消化。
但凡学习了新的东西,要思考,我学习的这个东西,能用在什么地方并用自己的语言去表述:
比如点鞭炮,一条引线可以同时点燃左右两串鞭炮,引线又是由一节节火药连成的(链表),突然发现右边鞭炮附近有小孩(在程序中就是遇到了error),要及时停止右边的鞭炮继续燃烧,避免造成不可挽救的情况(在系统中就是资源损耗),这个时候肯定还在继续燃烧对不对(必须对),那其中一节就及时抛出警告,告诉后面的火药别烧下去了(抛出 error ),告诉前面的领导咱们不能再烧了,最后右边的鞭炮就点不起来,也没造成人身伤害。

上图:


image.png

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:埃尔温薛定谔不养猫

查看原文:Golang 上下文 Context

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

671 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传