您的位置:首页 > 编程语言

Go 并发编程之美:低级并发编程原语锁

2019-07-14 23:30 615 查看

Go 语言在被设计的时候,Java 和 C++ 是编写服务器程序最常用的语言(至少在 Google 是这样),这是因为使用这些语言可以高效的开发。但是 Go 设计者们觉得像 Java 和 C++ 这些语言需要开发者记忆太多的语法和规则,并且需要重复做的事情太多,这导致一些程序员开始转向更加动态、流畅的语言,如 Python。但是付出的是损失开发效率和对类型安全检查的缺失。Go 设计者们认为应该可以发明一种语言,这种语言集高效的开发、提供类型安全检查、简洁流畅的代码风格与一体,于是 Go 就诞生了。

Go 在语言层面提供了内置的并发支持,其的应用范围越来越广,大名鼎鼎的容器化技术 Docker 以及号称分布式操作系统的 K8S 底层实现就是 Golang 来实现的,随着技术的快速发展,我们只有不断迭代自己的技术栈,才能不会被淘汰,而 Golang 将会是未来应用场景比较多的一种语言,各大公司也将会要求必须掌握 Golang 来进行快速开发高并发应用程序。

前面我们讲解了Go并发编程基础 ,本课程作为 Go 并发编程的高级篇上篇,讲解 Go 中的低级并发编程原语锁相关,内容如下:

  • Go 中互斥锁的介绍,包含互斥锁的两种模式:正常与饥饿模式的介绍以及相互转化
  • Go 中读写锁的介绍,读写锁是互斥锁,是可重入锁?
  • Go 中条件变量的支持,多个线程之间进行线程同步
  • Go 中 CAS 操作的介绍,使用锁开销太大,CAS 来解决
  • Go 中 WaitGroup 的介绍,如何让主 Goroutine 等待多个子 Goroutine 运行结束做些事情
  • Go 中 Pool 的介绍,如何实现资源复用
  • Go 中锁的 happen-before 语义

阅读全文: http://gitbook.cn/gitchat/activity/5d2745df329a601d1d6749e3

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: