内容简介 · · · · · ·
本书首先介绍了Go语言的优秀特性、安装设置方法、工程结构、标准命令和工具、语法基础、数据类型以及流程控制方法,接着阐述了与多进程编程和多线程编程有关的知识,然后重点介绍了goroutine、channel以及Go提供的传统同步方法,最后通过一个完整实例——网络爬虫框架进一步阐述Go语言的哲学和理念,同时分享作者在多年编程生涯中的一些见解和感悟。
与上一版相比,本书不仅基于Go 1.8对上一版进行了全面更新,而且更深入地描绘了Go运行时系统的内部机理,并且大幅改进了示例代码。
本书适用于有一定计算机编程基础的从业者以及对Go语言编程感兴趣的爱好者,非常适合作为Go语言编程进阶教程。
作者简介 · · · · · ·
郝林
从业12年有余的软件工匠,国内知名的Go语言技术布道者,Go语言北京用户组和GoHackers社群的发起人和组织者,多套免费在线Go语言教程的作者,深信Go语言在人工智能时代和机器人时代也能大放异彩的科技信徒。
目录 · · · · · ·
1.1 语言特性 1
1.2 安装和设置 2
1.3 工程结构 3
1.3.1 工作区 3
1.3.2 GOPATH 4
1.3.3 源码文件 5
1.3.4 代码包 8
1.4 标准命令简述 11
1.5 问候程序 13
1.6 小结 14
第2章 语法概览 15
2.1 基本构成要素 15
2.1.1 标识符 15
2.1.2 关键字 16
2.1.3 字面量 17
2.1.4 操作符 17
2.1.5 表达式 19
2.2 基本类型 20
2.3 高级类型 22
2.3.1 数组 23
2.3.2 切片 23
2.3.3 字典 24
2.3.4 函数和方法 25
2.3.5 接口 28
2.3.6 结构体 29
2.4 流程控制 30
2.4.1 代码块和作用域 30
2.4.2 if语句 32
2.4.3 switch语句 32
2.4.4 for语句 34
2.4.5 defer语句 36
2.4.6 panic和recover 38
2.5 聊天机器人 40
2.6 小结 44
第3章 并发编程综述 45
3.1 并发编程基础 45
3.1.1 串行程序与并发程序 46
3.1.2 并发程序与并行程序 46
3.1.3 并发程序与并发系统 47
3.1.4 并发程序的不确定性 47
3.1.5 并发程序内部的交互 47
3.2 多进程编程 48
3.2.1 进程 48
3.2.2 关于同步 55
3.2.3 管道 60
3.2.4 信号 65
3.2.5 socket 74
3.3 多线程编程 97
3.3.1 线程 98
3.3.2 线程的同步 107
3.4 多线程与多进程 125
3.5 多核时代的并发编程 126
3.6 小结 130
第4章 Go的并发机制 131
4.1 原理探究 131
4.1.1 线程实现模型 132
4.1.2 调度器 142
4.1.3 更多细节 158
4.2 goroutine 160
4.2.1 go语句与goroutine 160
4.2.2 主goroutine的运作 166
4.2.3 runtime包与goroutine 166
4.3 channel 169
4.3.1 channel的基本概念 169
4.3.2 单向channel 180
4.3.3 for语句与channel 184
4.3.4 select语句 185
4.3.5 非缓冲的channel 190
4.3.6 time包与channel 192
4.4 实战演练:载荷发生器 198
4.4.1 参数和结果 199
4.4.2 基本结构 201
4.4.3 初始化 206
4.4.4 启动和停止 212
4.4.5 调用器和功能测试 221
4.5 小结 231
第5章 同 步 232
5.1 锁的使用 232
5.1.1 互斥锁 232
5.1.2 读写锁 236
5.1.3 锁的完整示例 238
5.2 条件变量 244
5.3 原子操作 247
5.3.1 增或减 247
5.3.2 比较并交换 249
5.3.3 载入 250
5.3.4 存储 251
5.3.5 交换 251
5.3.6 原子值 252
5.3.7 应用于实际 256
5.4 只会执行一次 257
5.5 WaitGroup 258
5.6 临时对象池 262
5.7 实战演练——Concurrent Map 265
5.8 小结 280
第6章 网络爬虫框架设计和实现 281
6.1 网络爬虫与框架 281
6.2 功能需求和分析 283
6.3 总体设计 284
6.4 详细设计 286
6.4.1 基本数据结构 286
6.4.2 接口的设计 293
6.5 工具的实现 309
6.5.1 缓冲器 309
6.5.2 缓冲池 311
6.5.3 多重读取器 317
6.6 组件的实现 318
6.6.1 内部基础接口 319
6.6.2 组件注册器 321
6.6.3 下载器 323
6.6.4 分析器 325
6.6.5 条目处理管道 328
6.7 调度器的实现 329
6.7.1 基本结构 329
6.7.2 初始化 331
6.7.3 启动 333
6.7.4 停止 343
6.7.5 其他方法 344
6.7.6 总结 345
6.8 一个简单的图片爬虫 346
6.8.1 概述 346
6.8.2 命令参数 346
6.8.3 初始化调度器 348
6.8.4 监控调度器 354
6.8.5 启动调度器 364
6.9 扩展与思路 365
6.10 本章小结 368
附录A Go语言的学习资源 369
· · · · · · (收起)
"Go并发编程实战(第2版)"试读 · · · · · ·
Go是年轻而有活力的语言。 它最初于2007年由 Robert Griesemer、Rob Pike 和 Ken Thompson在Google开始开发,2009年正式发布。作者们希望Go能使复杂、高效系统的编写工作变得简单、可靠;同时,也希望Go能成为一个相对通用的编程环境,适应诸如桌面应用、移动应用、数值计算等。 Go的设计理念充分体现了这些设计目标。它是极简化语言的代表,推崇少即是多。为了避免复杂、不可读的代..
丛书信息
· · · · · ·
喜欢读"Go并发编程实战(第2版)"的人也喜欢 · · · · · ·
- 多核应用编程实战 7.7
- Go语言实战 7.8
- 命令行中的数据科学 7.6
- 现代体系结构上的UNIX系统 8.6
- Linux系统编程(第2版) 8.4
- Go程序设计语言 8.7
- 算法详解(卷1)——算法基础 9.2
- Rust实战 7.7
- 魔力Haskell 8.3
- 深入理解Python特性 8.6
Go并发编程实战(第2版)的书评 · · · · · · ( 全部 12 条 )
可以看出作者基础功底很差
并发那部分内容写的罗嗦但是也有实质的东西
> 更多书评 12篇
这本书的其他版本 · · · · · · ( 全部2 )
-
人民邮电出版社 (2015)6.4分 81人读过
以下书单推荐 · · · · · · ( 全部 )
- 我的藏经阁 (刘普)
- 女程序员冲啊 (地氯雷他定)
- 书单|go (Vine.Y)
- 书单|tech books (Walnut)
- Golang (LaChimere)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有172人想读,手里有一本闲着?
订阅关于Go并发编程实战(第2版)的评论:
feed: rss 2.0
0 有用 irwin 2022-01-20 14:34:45
行动证明了如何将简单事情复杂化。首先,定位的偏差造成与读者预期有很大差距,大家并不会把这样一本书名的书当作计算机编程入门或者进阶。看评论那么多差评,可见了。80%的篇幅完全可以编程一页推荐书单。那些经典的unix高级编程之类的不必你讲的更好,更深么。想要在一本golang的书籍里深入写各种其他知识点,不知道是怎么想的。多亏电子版瞅一眼解毒,几分钟扫了第六章,基本全是和go不相关的基本进程,线程,同... 行动证明了如何将简单事情复杂化。首先,定位的偏差造成与读者预期有很大差距,大家并不会把这样一本书名的书当作计算机编程入门或者进阶。看评论那么多差评,可见了。80%的篇幅完全可以编程一页推荐书单。那些经典的unix高级编程之类的不必你讲的更好,更深么。想要在一本golang的书籍里深入写各种其他知识点,不知道是怎么想的。多亏电子版瞅一眼解毒,几分钟扫了第六章,基本全是和go不相关的基本进程,线程,同步的内容。 (展开)
0 有用 Laisky 2018-04-28 09:19:43
挺好
0 有用 昊天 2019-12-29 18:36:00
值得多看几遍!
5 有用 Jack Chu 2018-01-05 21:40:19
作者水平很高,然而这本书实在不堪一读:教科书式的大段文件,残缺的代码片段散落其间;实战代码无法说明章节主旨,工程结构性代码占据绝大部分篇幅;并行计算纠缠理论上的细枝末节,Go的设计和实现上却着墨甚少。
2 有用 darcy27149 2017-07-12 22:59:59
首先确实有干货,但是不喜欢这种组织方式,连着N页的文字,各种片段式的代码.三星半吧.
0 有用 River 2023-11-28 12:17:31 北京
这书我打10星,读书体验堪比一堂高质量的上课。很多口语化文字,把晦涩的概念模型演绎得生动精彩。后面爬虫框架的工程化讲得非常到位,宛如老师傅嘱咐新徒弟,句句在理
0 有用 青木 2023-11-18 13:58:15 浙江
读的实在是难啊,不是内容难,是语言逻辑太乱了,还很啰嗦,啰嗦也就算了,还说不明白!这钱花的太亏了!
0 有用 lifisher 2022-07-08 19:10:21
写的挺好的,深入浅出。关键是自己要多写代码。最后一章是精华,模块化设计很出色。读过的朋友应该好好体会作者的设计,啰嗦一点不是什么大问题,哈哈。
0 有用 gzhh 2022-06-18 11:26:00
只快速看了第四章和第五章,还算写的规规矩矩
0 有用 张琰 2022-02-27 22:29:17
后面会在看看示例 目前没啥收获