首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
lorrainema
掘友等级
腾讯
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
5
文章 4
沸点 1
赞
5
返回
|
搜索文章
赞
文章( 4 )
沸点( 1 )
理解 Go Context 机制
最近在公司分析 gRPC 源码,proto 文件生成的代码,接口函数第一个参数统一是 ctx context.Context 接口,公司不少同事都不了解这样设计的出发点是什么,其实我也不了解其背后的原理。今天趁着妮妲台风妹子正面登陆深圳,全市停工、停课、停业,在家休息找了一些资料研究把玩一把。 Context 通常被译作上下文,它是一个比较抽象的概念。在公司技术讨论时也经常会提到上下文。一般理解为程序单元的一个运行状态、现场、快照,而翻译中上下又很好地诠释了其本质,上下上下则是存在上下层的传递,上会把内容传递给下。在 Go 语言中,程序单元也就指的是 Goroutine。 每个 Goroutine 在执行之前,都要先知道程序当前的执行状态,通常将这些执行状态封装在一个 Context 变量中,传递给要执行的 Goroutine 中。上下文则几乎已经成为传递与请求同生存周期变量的标准方法。在网络编程下,当接收到一个网络请求 Request,处理 Request 时,我们可能需要开启不同的 Goroutine 来获取数据与逻辑处理,即一个请求 Request,会在多个 Goroutine 中处理。而这些 Goroutine 可能需要共享 Request 的一些信息;同时当 Request 被取消或者超时的时候,所有从这个 Request 创建的所有 Goroutine 也应该被结束。
C10K、C100K, C1000K=C1M,C10M( concurrent 10M connections)....千万级并发实现的秘密:内核不是解决方案,而是问题所在! - ajian005的专栏 - CSDN博客
C10K、C100K, C1000K=C1M,C10M( concurrent 10M connections)....千万级并发实现的秘密:内核不是解决方案,而是问题所在! - ajian005的专栏 - CSDN博客
Golang之情非得已的DeepCopy
改变sheet2页上的数据,sheet1上的数据会一起发生变化,最后他定位到问题是由于自己做了两个sheet结构体的浅拷贝导致的。因为sheet对应的结构体的特殊性其必须是指针类型。是啊。。。这样就坑了,Golang里面怎么做一个超级无敌复杂结构体的指针变量的深拷贝呢?
关注了
13
关注者
0
收藏集
1
关注标签
31
加入于
2017-06-23