搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
深入理解Go并发编程(从原理到实践看这本就够了)
0.00     定价 ¥ 158.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购21本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787121466465
  • 作      者:
    作者:晁岳攀|责编:张月萍
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2023-11-01
收藏
编辑推荐

●全面。本书详细介绍了Go标准库中的每一个同步原语,并且补充介绍了Go官方扩展库的同步原语,以及很多第三方的并发库。本书还全面介绍了基于etcd的分布式同步原语,读者在开发分布式程序的时候它很有参考价值。本书还梳理了Go并发模式,读者可以系统性地了解采用并发模式要解决的问题。

●由浅入深。每个同步原语一开始都会介绍其使用场景和基本的使用方法,很多同步原语都会介绍其实现,读者可以深入了解同步原语背后的原理。书中有作者多年开发经验的总结和梳理,让读者少走弯路。

●书中包含大量的示例,独创性地梳理了同步原语使用陷阱,还专门列出了知名项目如Kubernetes、Docker、gRPC等项目中出现的并发错误,让读者切身感受到知名项目的有经验的Go程序员也会犯的错。

●独立。各章之间没有依赖性,每一章都是独立的,读者可以从任意一章开始进行学习。正如“极客时间”的一位读者所说,课程需要反复学几遍才能理解透,所以希望读者也能勤翻一翻本书,多学习几遍,把相关知识掌握透彻。


展开
作者简介

晁岳攀(@鸟窝),rpcx微服务框架作者,Go语言布道师,技术专栏作家。


展开
内容介绍
本书分为四大部分。第1部分包括第1~13章,主要介绍Go标准库的同步原语,包括互斥锁Mutex、读写锁RWMutex、WaitGroup、条件变量Cond、Once、Map、Pool、 Context、channel等,以及最新的原子操作知识,其中重点介绍了channel,最后还介绍了Go的内存模型。第2部分包括第14~18章,主要介绍Go官方的扩展库和第三方的同步原语,包括信号量、SingleFlight、CyclicBarrier、分组操作库、限流库等。第3部分包括第19章,主要介绍基于etcd的分布式同步(并发)原语。第4部分包括第20章和第21章,主要归纳总结Go的并发模式,并尝试使用本书介绍的同步原语解决经典的并发问题。 本书主要面向的是已经具有Go软件编程开发经验的工程师、基础架构软件开发工程师和架构师,需要初步和深入了解Go并发编程的相关知识,设计和实现高并发的基础软件与分布式系统的专业人员,以及对Go并发感兴趣的读者。
展开
目录

第1章Go并发编程和调度器

1.1Go特别适合并发编程

1.2并发vs并行

1.3阿姆达尔定律:并发编程优化是有上限的

1.4Go并发并不一定最快

1.5Go运行时调度器

 

第2章互斥锁Mutex

2.1竞争条件与数据竞争

2.2Mutex的用法

2.2.1一个并发问题

2.2.2Mutex的使用

2.2.3地道的用法

2.3检查程序中的数据竞争

2.4Mutex的历史实现

2.4.1初始版本

2.4.2多给新的goroutine一些机会

2.4.3多给竞争者一些机会

2.4.4解决饥饿问题

2.4.5TryLock

2.5Mutex的使用陷阱

2.5.1误写

2.5.2死锁

2.5.3锁重入

2.5.4复制锁

2.6Mutex的扩展

2.6.1可重入锁

2.6.2支持并发map

2.6.3封装值

 

第3章读写锁RWMutex

3.1读写锁的使用场景

3.2读写锁的使用方法

3.3读写锁的实现

3.3.1RLock的实现

3.3.2RUnlock的实现

3.3.3Lock的实现

3.3.4Unlock的实现

3.3.5TryLock的实现

3.3.6TryRLock的实现

3.4读写锁的使用陷阱

3.4.1锁重入

3.4.2死锁

3.4.3发现死锁

3.5读写锁的扩展

.......

20.14多进程模式

 

第21章经典并发问题解析

21.1哲学家就餐问题

21.1.1模拟哲学家就餐问题

21.1.2解法一:限制就餐人数

21.1.3解法二:奇偶处理方法

21.1.4解法三:资源分级

21.1.5解法四:引入服务生

21.2理发师问题

21.2.1使用sync.Cond解决理发师问题

21.2.2使用channel实现信号量

21.2.3有多个理发师的情况

21.3水工厂问题

21.4fizzbuzz问题

21.4.1     将并发转为串行

21.4.2     使用同一个channel

21.4.3     使用CyclicBarrier

 


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证