golang 并发原语[草稿]

栏目: Go · 发布时间: 6年前

内容简介:总结一下昨天这里贴出一篇关于golang流行开源项目涉及到并发bug的论文上图可以看到,golang主流的开源项目用到的并发原语的比例。主要集中在Mutex和channel,所以这应该是我们学习的重点部分。

总结一下昨天 鸟窝 在《Go 同步和并发设计模式》 分享的 golang 并发开发相关的知识。主要分为四个部分,同步原语,分布式同步原语,channel,内存模型。这里主要从初学者角度,以鸟窝的ppt为大纲,来梳理一下常用的功能,用法和代码实现。

前沿背景

这里贴出一篇关于golang流行开源项目涉及到并发bug的论文

golang 并发原语[草稿]

image.png

上图可以看到,golang主流的开源项目用到的并发原语的比例。主要集中在Mutex和channel,所以这应该是我们学习的重点部分。

同步原语

Mutex

结构定义

// A Mutex must not be copied after first use.
type Mutex struct {
    state int32
    sema  uint32
}

注释可以看到Mutex是不能复制的。

RWMutex

Cond

WaitGroup

Once

Pool

sync.Map

context.Context

ReentrantLock

Semaphore

SingleFlight

ErrGroup

SpinLock

atomic 包

分布式同步原语

Channel

内存模型 happens before


以上所述就是小编给大家介绍的《golang 并发原语[草稿]》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

HTML5与CSS3权威指南(上册) (第3版)

HTML5与CSS3权威指南(上册) (第3版)

陆凌牛 / 机械工业出版社 / 2015-9-1 / CNY 89.00

本书是HTML 5与CSS 3领域公认的标杆之作,被读者誉为“系统学习HTML 5与CSS 3的最佳著作”和“Web前端工程师案头必备图书之_”。 前两版累计印刷超过15次,网络书店评论超过8000条,98%以上的评论都是五星级的好评。不仅是HTML 5与CSS 3图书领域当之无愧的领头羊,而且在整个原创计算机图书领域是佼佼者。 第3版首先从技术的角度根据最新的HTML 5和CSS 3......一起来看看 《HTML5与CSS3权威指南(上册) (第3版)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具