首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Go并发编程
BeCautious
创建于2022-06-07
订阅专栏
Go并发那些事儿: 基本并发原语, 原子操作, Channel, 扩展并发原语, 分布式并发原语
等 1 人订阅
共9篇文章
创建于2022-06-07
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Go并发8 并发原语 - 任务编排 - WaitGroup的基本实现原理
WaitGroup WaitGroup是 package sync 用来做任务编排的一个并发原语,它要解决的就是并发 - 等待的问题: 比如现在有一个 goroutine A 在检查点(checkpo
Go并发9 并发原语 - 任务编排 - WaitGroup使用的常见错误
WaitGroup使用的常见错误 我们在开发的时候,经常会遇见或看到误用 WaitGroup 的场景,究其原因就是没有弄明白这些检查的逻辑,下面我们列举一下几个典型错误使用案例以及WG的错误检查原则。
Go并发7 同步原语 - RWMutex 读写锁实现原理与实践
RWMute 锁分离(读写分离) 是提高性能的锁优化方法之一, 像Java中的ReetrantReadWriteLock以及SampedLock,Go语言中同样也提供了相应的同步原语 RWMutex
Go并发6 同步原语 - Mutex 通过Hacker的方式拓展额外功能
互斥锁堵塞带来的性能下降 我们知道互斥锁如果被某个 goroutine 获取了,而且还没有释放,其他请求这把锁的 goroutine,就会阻塞等待,直到有机会获得这把锁。 有时候阻塞并不是一个好的选择
Go并发5 同步原语 - Mutex 可重入锁的设计与实现
如何自定义一个可重入的Mutex? 实现可重入锁一个关键点 我们实现的锁要能标记当前是哪个 goroutine 持有这个锁。 记录获取协程标记的两个方案 方案一: 通过 runtime.Stack 或
Go并发4 同步原语 - Mutex的典型易错使用场景
Mutex的4种易错使用场景 1.Lock/Unlock 不成对出现 Lock/Unlock 没有成对出现,就可能会出现死锁或者是因为Unlock一个未加锁的Mutex而导致 panic。 忘记Unl
Go并发3 同步原语 - Mutex 的实现原理
Mutex演进的四个架构 初版 Mutex 使用一个 flag 来表示锁是否被持有,实现比较简单 给新人机会 照顾到新来的 goroutine,会让新的 goroutine 也尽可能地先获取到锁 多给
Go并发2 同步原语 - Mutex 的使用
并发问题 我们知道多线程的目的是为了提高效率,充分利用CPU资源,从而减少任务执行时间,但是也会带来共享资源的并发问题。 临界区 在并发编程中,如果程序中的一部分会被并发访问或修改,那么,为了避免并发
Go并发1 - 带着问题去探索Go并发
关于Go并发的5个问题 Go并发的两条学习主线 知识主线 基本并发原语: 如Mutex、RWMutex、Waitgroup、Cond、Pool、Context 等标准库中的并发原语,一般用于共享资源场