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满满干货!相关推荐

  1. 《Go 同步和并发设计模式》培训会后整理

    今天参加<Go 同步和并发设计模式>主题培训,虽然早上下雨,但是大家一般还是都在9点左右赶到现场.本次分享时间很充沛,晁老师讲的也很细致,4点就结束了高于预期啊呵呵,全程听下讲座来收获还是 ...

  2. [深度]Go同步和并发设计模式

    在 2019年第五届 Gopher China 大会上,新浪微博平台研发中心架构组的工程师晁岳攀进行了主题为<Go同步和并发设计模式>的演讲,内容分为5个主题: 基本的同步原语 拓展同步原 ...

  3. java设计模式并发_[高并发Java 七] 并发设计模式

    [高并发Java 七] 并发设计模式 [高并发Java 七] 并发设计模式 为什么80%的码农都做不了架构师?>>> 在软件工程中,设计模式(design pattern)是对软件设 ...

  4. 多线程同步与并发访问共享资源工具—Lock、Monitor、Mutex、Semaphore

    "线程同步"的含义 当一个进程启动了多个线程时,如果需要控制这些线程的推进顺序(比如A线程必须等待B和C线程执行完毕之后才能继续执行),则称这些线程需要进行"线程同步(t ...

  5. 并发设计模式——保护性暂停(Guarded Suspension)

    并发设计模式--保护性暂停(Guarded Suspension) 什么叫做 Guarded Suspension ? guarded 的意思是"守护.担保",suspension ...

  6. 《Java高并发核心编程.卷2,多线程、锁、JMM、JUC、高并发设计模式》

    <Java高并发核心编程.卷2,多线程.锁.JMM.JUC.高并发设计模式> 目录 第1章 多线程原理与实战 1.2 无处不在的进程和线程 1.2.1 进程的基本原理 1.2.2 线程的基 ...

  7. 解秘 Node.js 单线程实现高并发请求原理,以及串联同步执行并发请求的方案

    最近在做一个支持多进程请求的 Node 服务,要支持多并发请求,而且请求要按先后顺序串联同步执行返回结果. 对,这需求就是这么奇琶,业务场景也是那么奇琶. 需求是完成了,为了对 Node.js 高并发 ...

  8. 并发设计模式之Guarded Suspension模式

    - 原文链接: http://www.joyhwong.com/2016/11/19/并发设计模式之guarded-suspension模式/ Guarded Suspension意为保护暂停,其核心 ...

  9. 并发设计模式之生产者-消费者模式

    点击查看原文: http://www.joyhwong.com/2016/11/19/并发设计模式之生产者-消费者模式/ 生产者-消费者模式是一个经典的多线程设计模式,它为多线程间的协作提供了良好的解 ...

最新文章

  1. int length c语言,第07天C语言(06):数组练习2
  2. ST发布世界上首款LoRa Soc单片机STM32WL
  3. 牛客网CSP-S提高组赛前集训营1题解(仓鼠的石子游戏 [博弈论] + 乃爱与城市的拥挤程度 [树上DP] + 小w的魔术扑克[dfs + 离线])
  4. 阿里最全Java面试100题汇总:涵盖天猫、蚂蚁金服等面试题!含答案~
  5. CSDN”好师父“培养高素质技术人才
  6. HTML课程表应用,可在PC和Android运行
  7. Java中parseInt()和valueOf(),toString()的区别
  8. 哪个NBA球队会夺冠?用深度学习预测最有潜力的球员!
  9. plsql导出表结构到excel_plsql基本操作 复制表 导出表 导出表结构 及其导入
  10. 管理储存组和邮箱数据库
  11. grub4dos引导启动linux,Grub4Dos 手动引导指令
  12. Linux下新增磁盘
  13. 求助:如何实现EA自动判断趋势,寻找高低点,并获取高低点K线价格数据,然后根据价格画出支撑阻力区域.
  14. 插入法排序(c语言)
  15. 服务器挖矿病毒的排查过程
  16. 计算机专业对于未来的规划,对所学专业的认识及对未来的规划.doc
  17. 英伟达A100 Tensor Core GPU架构深度讲解
  18. 亿道丨三防平板丨加固平板丨三防加固平板丨改善资产管理
  19. 2021-11-10 末端空间路径规划?
  20. 2021年中国海图记录器市场趋势报告、技术动态创新及2027年市场预测

热门文章

  1. 电阻、电容、电感的高频特性
  2. TED演讲字幕下载脚本的使用方法
  3. basroot.dll丢失的解决方法_basroot.dll文件丢失修复教程
  4. 《游戏的人》笔记——第一章
  5. 计算机专业c语言随堂练,华工C++随堂练习答案+2020春
  6. win7的c盘清理方法
  7. QML中用javascript 实现中文转换拼音
  8. 1417 - 买文具
  9. 使用bootstrap.css框架无法显示图标问题
  10. PhotoShop 矢量蒙板