Go语言并发之道凯瑟琳 ISBN:9787519824945

凯瑟琳 2023年10月5日10:39:18
评论
306

Go语言并发之道

书籍作者:凯瑟琳

ISBN:9787519824945

书籍语言:简体中文

连载状态:全集

电子书格式:pdf,txt,epub,mobi,azw3

下载次数:7706

运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板

内容简介

本书作者带你一步一步深入这些方法。你将理解 Go语言为何选定这些并发模型,这些模型又会带来什么问题,以及你如何组合利用这些模型中的原语去解决问题。学习那些让你在独立且自信的编写与实现任何规模并发系统时所需要用到的技巧和工具。

理解Go语言如何解决并发难以编写正确这一根本问题。

学习并发与并行的关键性区别。

深入到Go语言的内存同步原语。

利用这些模式中的原语编写可维护的并发代码。

将模式组合成为一系列的实践,使你能够编写大规模的分布式系统。

学习 goroutine 背后的复杂性,以及Go语言的运行时如何将所有东西连接在一起。

作者简介

Katherine Cox-Buday是一名计算机科学家,目前工作于 Simple online banking。她的业余爱好包括软件工程、创作、Go 语言(igo、baduk、weiquei) 以及音乐,这些都是她长期的追求,并且有着不同层面的贡献。

编辑推荐

适读人群 :这本书适合已经了解Go 语言,并有一些开发经验的人。我没有解释Go 语言的基本语法。最好了解一些其他语言的并发编程,当然这并不是必须的。
由于主题涵盖的范围较广,本书适合各个使用方向的读者。

本书作者带你一步一步深入这些方法。你将理解 Go语言为何选定这些并发模型,这些模型又会带来什么问题,以及你如何组合利用这些模型中的原语去解决问题。学习那些让你在独立且自信的编写与实现任何规模并发系统时所需要用到的技巧和工具。

理解Go语言如何解决并发难以编写正确这一根本问题。

学习并发与并行的关键性区别。

深入到Go语言的内存同步原语。

利用这些模式中的原语编写可维护的并发代码。

将模式组合成为一系列的实践,使你能够编写大规模的分布式系统。

学习 goroutine 背后的复杂性,以及Go语言的运行时如何将所有东西连接在一起。

《Go语言并发之道》电子书免费下载

pdf下载
txt下载
epub下载
mobi下载
azw3下载
下载暂时关闭,开启另行通知

前言

前言

嘿,欢迎阅读本书!很高兴你已经拿起这本书开始阅读,非常期待在接下来的6章中和你一起探索关于 Go语言并发编程的主题。

Go语言是一种美妙的语言。当它被创造并首次公开的时候,我带着极大的兴趣探索它:简洁、编译速度飞快、运行稳定、支持鸭子类型(ducktyping),让我高兴的是,它原生支持并发。当我第一次使用“go 关键字”创建一个goroutine的时候,(我保证)我开心得只剩傻笑了。我曾经用其他一些编程语言写过并发程序,但我从未用过像Go语言这样这么容易实现并发的语言(我并不是说其他有这种特性的语言不存在,只是我没用过)。我已经找到了我的Go语言最佳实践。

在过去的几年里,我用Go语言写个人的脚本和项目,直到发现自己已经可以在成千上万行代码的项目中畅游。随着语言的不断发展和社区的不断壮大,我们一起找到了Go语言并发编程的最佳实践。一些人就他们找到的模式进行讨论,但在社区里还没有如何使用Go语言并发编程的综合指南。

正是考虑到这一点,我才决定写这本书。我希望可以让社区了解到关于Go语言并发编程的一些全面且高质量的信息:如何使用,最佳实践,以及如何将它集成到你的系统中,还有它背后的工作原理。我竭尽全力均衡这些关注点。我希望这是一本对你有益的书。

目录

前言 1

第1章 并发概述 9

摩尔定律,Web Scale和我们所陷入的混乱 10

为什么并发很难? 12

竞争条件 13

原子性 15

内存访问同步 17

死锁、活锁和饥饿 20

确定并发安全 28

面对复杂性的简单性 31

第2章 对你的代码建模:通信顺序进程 33

并发与并行的区别 33

什么是CSP 37

如何帮助你 40

Go语言的并发哲学 43

第3章 Go语言并发组件 47

goroutine 47

sync包 58

WaitGroup 58

互斥锁和读写锁 60

cond 64

once 69

池 71

channel 76

select 语句 92

GOMAXPROCS控制 97

小结 98

第4章 Go语言的并发模式 99

约束 99

for-select循环103

防止goroutine泄漏 104

or-channel 109

错误处理112

pipeline 116

构建pipeline的最佳实践 120

一些便利的生成器 126

扇入,扇出 132

or-done-channel 137

tee-channel 139

桥接channel模式 140

队列排队143

context包 151

小结 168

第5章 大规模并发 169

异常传递169

超时和取消 178

心跳 184

复制请求197

速率限制199

治愈异常的goroutine 215

小结 222

第6章 goroutine和Go语言运行时 223

工作窃取223

窃取任务还是续体 231

向开发人员展示所有这些信息 240

尾声 240

附录A 241

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: