首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Golang
订阅
楚进DAD
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
Golang Context的好与坏及使用建议
context的设计在Golang中算是一个比较有争议的话题。context不是银弹,它解决了一些问题的同时,也有不少让人诟病的缺点。本文主要探讨一下context的优缺点以及一些使用建议。 由于主观上我也不是很喜欢context的设计,所以我们就从缺点先开始吧。 根据cont…
Go 语言 Channel 的实现原理
这一节中的内容总共包含两个部分,我们会先介绍 Channel 的设计原理以及它在 Go 语言中的数据结构,接下来我们会分析常见的 Channel 操作,例如创建、发送、接收和关闭的实现原理,由于在 Range 和 Select 两节中我们会提到 Channel 在不同的控制结构…
Golang并发调度的GMP模型
Golang的一大特色就是Goroutine。Goroutine是Golang支持高并发的重要保障。Golang可以创建成千上万个Goroutine来处理任务,将这些Goroutine分配、负载、调度到处理器上采用的是G-M-P模型。 Goroutine = Golang + …
解密Go协程的栈内存管理
应用程序的内存会分成堆区(Heap)和栈区(Stack)两个部分,程序在运行期间可以主动从堆区申请内存空间,这些内存由内存分配器分配并由垃圾收集器负责回收。栈区的内存由编译器自动进行分配和释放,栈区中存储着函数的参数以及局部变量,它们会随着函数的创建而创建,函数的返回而销毁。 …
Golang 如何正确使用 Context
at Golang UK Conf. 2017 如果进一步考虑。 如上图这样的 RPC 调用,开始调用 RPC 1 后,里面分别调用了 RPC 2, RPC 3, RPC 4,等所有 RPC 用成功后,返回结果。 RPC 2 失败后,如果没有 Context 的存在,那么我们可…
Golang RPC实践
RPC(Remote Procedure Call,远程过程调用)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络细节的应用程序通信协议。RPC协议构建于TCP或UDP,或者是HTTP上。 在Go中,标准库提供的net/rpc包实现了RPC协议需要的相关细节,开发…
图解Golang的channel底层原理
废话不多说,直奔主题。 buf是有缓冲的channel所特有的结构,用来存储缓存数据。是个循环链表 lock是个互斥锁。 recvq和sendq分别是接收(<-channel)或者发送(channel <- xxx)的goroutine抽象出来的结构体(sudog)的队列。是个…