《Go 同步和并发设计模式》培训结束,get满满干货!
5月26日,在北京举办了GoCN和滴滴再次携手邀请了来自微博研发平台架构中心资深架构师-晁岳攀老师在北京举办的《深入Go 并发编程》培训专场,本次参加培训报名人数达到170余人,远超我们一开始限定的数量150人,更是有同学在培训当天联系到我们开启了报名通道。
据现场反馈,各位gopher们激情高涨,有些同学一开始是奔着晁老师超过120页的PPT去的,但一整天完整听下来,受益匪浅。此次授课的晁岳攀老师在课堂上手把手的教大家Go 同步和并发设计模式,也取得了良好的成效,受到学员们的一致好评。
本次培训课程回顾
并发原语综述
基本并发原语
Mutex的实现、扩展功能和坑。
RWMutex的实现、扩展功能和坑。
Waitgroup的实现、坑
Cond的使用和坑
Once的实现和坑,单例的Eager/Lazy实现
Pool的坑, net.Conn的池
Map的实现、应用场景
Context的一些问题
扩展并发原语
可重入锁
信号量
SingleFlight及应用
ErrGroup
自旋锁
文件锁
并发Map的多种实现
原子操作
原子操作的实现
操作的数据类型
提供的函数
通用Value类型
扩展的原子操作库
分布式并发原语
锁,Mutex, RWmutex实战
栅栏
leader选举
队列
STM
其它分布式并发库
channel
常见易犯错的channel使用场景
三大使用场景
Or-done模式的三种实现
扇入
扇出
Tee
Pipeline
流式处理
happenbefore
init函数
goroutine
channel
Mutex/RWMutex
Waitgroup
Once
atomic
习题研讨
Go提供了我们便利的进行并发编程的工具、方法和同步原语,同时也提供给我们诸多的犯错的机会,也就是俗称的“坑”。即使是顶级Go开发的项目,比如Docker、Kubernetes、gRPC、etcd, 都是有经验丰富的Go开发专家锁开发,也踩过不少的并发的坑,而且依然源源不断的继续踩着,即便是标准库也是这样。
分析和总结并发编程中的陷阱,避免重复踩在别人的坑中,正是本次培训课的重要内容。只有深入了解并发原语的实现,全面了解它们的特性和限制场景,注意它们的局限和容易踩的坑,才能提高我们的并发编程的能力。通过了解和学习其他人的经验和贡献的项目和库,我们可以更好的扩展我们的视野,避免重复的造轮子,或者说我们可以制作更好的轮子。
语言的内存模型定义了对变量的读写的可见性,可以清晰而准确读写事件的happen before关系。对于我们,可以很好地分析和编排goroutine的运行,避免数据的竞争和不一致的问题。
参家培训的伙伴都获得了哪些收获呢?
基本同步原语的具体实现、hack同步原语进行扩展,它们的使用场景和坑,以及别人是怎么踩的等的了解
一些扩展的同步源于,对于标准库sync包的补充的了解
对于规模很大的项目,分布式同步原语是必不可少的,便利的分布式同步原语的了解
atomic可以保证对数据操作的一致性,利用CAS可以设计lock-free的数据结构
channel是Go语言进行并发编程的很好的工具,它的使用姿势了解
Go语言的内存模型的学习
本次培训PPT获取方式:关注“Go中国”公众号,在公众号对话栏回复“Go培训”即可获取!
GO 中国征稿啦!
自“Go中国 ” 公众号上线以来,因为扎实的干货(害羞)、前沿的解读(娇羞)、满满的福利一直深受 Gopher 们的喜爱,为了给大家带来更具实力的干货以及 Go 语项目开发经验,我们将开始对外征稿!
现在我们开始对外征稿啦!如果你有优秀的 Go 语言技术文章想要分享,热点的行业资讯需要报道等,欢迎联系在菜单栏回复“投稿”“合作”联系我们的小编进行投稿。
《Go 同步和并发设计模式》培训结束,get满满干货!相关推荐
- 《Go 同步和并发设计模式》培训会后整理
今天参加<Go 同步和并发设计模式>主题培训,虽然早上下雨,但是大家一般还是都在9点左右赶到现场.本次分享时间很充沛,晁老师讲的也很细致,4点就结束了高于预期啊呵呵,全程听下讲座来收获还是 ...
- [深度]Go同步和并发设计模式
在 2019年第五届 Gopher China 大会上,新浪微博平台研发中心架构组的工程师晁岳攀进行了主题为<Go同步和并发设计模式>的演讲,内容分为5个主题: 基本的同步原语 拓展同步原 ...
- java设计模式并发_[高并发Java 七] 并发设计模式
[高并发Java 七] 并发设计模式 [高并发Java 七] 并发设计模式 为什么80%的码农都做不了架构师?>>> 在软件工程中,设计模式(design pattern)是对软件设 ...
- 多线程同步与并发访问共享资源工具—Lock、Monitor、Mutex、Semaphore
"线程同步"的含义 当一个进程启动了多个线程时,如果需要控制这些线程的推进顺序(比如A线程必须等待B和C线程执行完毕之后才能继续执行),则称这些线程需要进行"线程同步(t ...
- 并发设计模式——保护性暂停(Guarded Suspension)
并发设计模式--保护性暂停(Guarded Suspension) 什么叫做 Guarded Suspension ? guarded 的意思是"守护.担保",suspension ...
- 《Java高并发核心编程.卷2,多线程、锁、JMM、JUC、高并发设计模式》
<Java高并发核心编程.卷2,多线程.锁.JMM.JUC.高并发设计模式> 目录 第1章 多线程原理与实战 1.2 无处不在的进程和线程 1.2.1 进程的基本原理 1.2.2 线程的基 ...
- 解秘 Node.js 单线程实现高并发请求原理,以及串联同步执行并发请求的方案
最近在做一个支持多进程请求的 Node 服务,要支持多并发请求,而且请求要按先后顺序串联同步执行返回结果. 对,这需求就是这么奇琶,业务场景也是那么奇琶. 需求是完成了,为了对 Node.js 高并发 ...
- 并发设计模式之Guarded Suspension模式
- 原文链接: http://www.joyhwong.com/2016/11/19/并发设计模式之guarded-suspension模式/ Guarded Suspension意为保护暂停,其核心 ...
- 并发设计模式之生产者-消费者模式
点击查看原文: http://www.joyhwong.com/2016/11/19/并发设计模式之生产者-消费者模式/ 生产者-消费者模式是一个经典的多线程设计模式,它为多线程间的协作提供了良好的解 ...
最新文章
- Belkatalog CMS SQL 注入漏洞(图)
- 入职一个多月了,谈谈感想
- mysql树形遍历_mysql树形结构遍历
- Hbase之protobuf的使用
- 酒店房间和 C++ 局部变量的作用域
- 大数据 数据库 评测_为什么腾讯QQ的大数据平台选择了这款数据库?
- STM32F107VCTx I2C通信
- DELL H330(LSI 3008)RAID卡刷IT直通模式注意事项(避坑指南)
- 计算机通信的应用,计算机技术在通信中的应用
- Java中的角度问题,求三角函数,角度,弧度,一文足够
- 无锁环形缓存器RingBuffer的原理
- Python可视化——随机漫步
- 运维简历怎么写项目描述_职场小白怎么写简历?一份好简历=成功一半
- command a expects \ followed by text
- iKinds:我是如何一步步重构改造项目从单VC到多VC界面(上)
- 员工与客户之间就是一个微信
- oracle开放查询表权限_(转载)Oracle创建用户并给用户授权查询指定表或视图的权限...
- 前端三剑客入门学习笔记之HTML
- ac1900修改代理服务器,AC1900路由器怎么设置? | 192路由网
- iOS-自己定义键盘选择器
热门文章
- 咸鱼菌玩3D—123D 菜单
- JS判断输入的是否汉字
- WSL Ubuntu guile命令报错Wrong __data_start/_end pair及guile-gi等相关编译错误的解决方法
- 明基逐鹿荣获2016年中国软件行业最具影响力企业奖
- 戴尔服务器修改光驱盘符,戴尔笔记本电脑驱动光盘和安装说明.doc
- 数据分析实战(数据采集与整理)
- 博士申请 | 香港科技大学(广州)梁宇轩老师招收全奖博士/硕士/博后/RA/实习生...
- 【正则表达式并且关系】
- avast! Home/Pro 4.7.1098简体中文
- win10使用自带的Hyper-V安装win7虚拟机