《Go并发编程实战》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:郝林著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115373984
  • 页数:558 页
图书介绍:本书将介绍Go语言的生态、部署环境、工具链、语法,并发模型以及其在多个编程实战中的应用。本书分为5部分,分别介绍了Go语言生态的世界、Go语言基础编程、Go语言并发编程基础、Go语言标准库和Go语言编程实战,包括两个使用Go语言开发的应用系统的案例讲解。

第一部分 Go语言的世界 2

第1章 初识Go语言 2

1.1 Go语言特性一瞥 2

1.2 Go语言的优劣 3

1.3 怎样学习Go语言 4

1.4 本章小结 5

第2章 Go语言环境搭建 6

2.1 安装和设置 6

2.1.1 Linux 6

2.1.2 Windows 9

2.2 工程结构 10

2.2.1 工作区 10

2.2.2 GOPATH 11

2.2.3 源码文件 11

2.2.4 代码包 14

2.3 标准命令概述 17

2.4 本章小结 18

第二部分 编程基础 20

第3章 词法与数据类型 20

3.1 基本词法 20

3.1.1 标识符 21

3.1.2 关键字 22

3.1.3 字面量 23

3.1.4 类型 24

3.1.5 操作符 26

3.1.6 表达式 33

3.2 数据类型 43

3.2.1 基本数据类型 44

3.2.2 数组 48

3.2.3 切片 52

3.2.4 字典 61

3.2.5 函数和方法 64

3.2.6 接口 72

3.2.7 结构体 76

3.2.8 指针 84

3.2.9 数据初始化 87

3.3 数据的使用 90

3.3.1 赋值语句 90

3.3.2 常量与变量 93

3.3.3 可比性与有序性 101

3.3.4 类型转换 108

3.3.5 内建函数 114

3.4 本章小结 118

第4章 流程控制方法 119

4.1 基本流程控制 119

4.1.1 代码块和作用域 119

4.1.2 if语句 121

4.1.3 switch语句 124

4.1.4 for语句 129

4.1.5 goto语句 137

4.2 defer语句 141

4.3 异常处理 145

4.3.1 error 146

4.3.2 panic和recover 149

4.4 实战演练——Set 154

4.5 实战演练——Ordered Map 163

4.6 本章小结 173

第5章 程序测试和文档 174

5.1 程序测试 174

5.1.1 功能测试 174

5.1.2 基准测试 180

5.1.3 样本测试 187

5.1.4 测试运行记录 189

5.1.5 测试覆盖率 193

5.2 程序文档 201

5.3 本章小结 205

第三部分 并发编程 208

第6章 并发编程综述 208

6.1 并发编程基础 208

6.1.1 串行程序与并发程序 209

6.1.2 并发程序与并行程序 209

6.1.3 并发程序与并发系统 210

6.1.4 并发程序的不确定性 210

6.1.5 并发程序内部的交互 210

6.2 多进程编程 211

6.2.1 进程 211

6.2.2 关于同步 217

6.2.3 管道 222

6.2.4 信号 228

6.2.5 Socket 238

6.3 多线程编程 260

6.3.1 线程 261

6.3.2 线程的同步 268

6.4 多线程与多进程 285

6.5 多核时代的并发编程 286

6.6 Go语言的并发编程 290

6.6.1 线程实现模型 290

6.6.2 调度器 299

6.6.3 更多的细节 311

6.7 本章小结 315

第7章 Goroutine和Channel 316

7.1 Goroutine的使用 316

7.1.1 go语句与Goroutine 316

7.1.2 Goroutine的运作过程 321

7.1.3 runtime包与Goroutine 322

7.1.4 Happens Before 326

7.2 Channel 327

7.2.1 Channel是什么 328

7.2.2 单向Channel 335

7.2.3 for语句与Channel 342

7.2.4 select语句 344

7.2.5 非缓冲的Channel 352

7.2.6 time包与Channel 358

7.3 实战演练——载荷发生器 363

7.3.1 参数和结果 364

7.3.2 基本结构 365

7.3.3 初始化 369

7.3.4 启动和停止 376

7.3.5 调用器和功能测试 389

7.4 本章小结 401

第8章 同步 402

8.1 锁的使用 402

8.2 条件变量 411

8.3 原子操作 414

8.4 只会执行一次 420

8.5 WaitGroup 423

8.6 临时对象池 426

8.7 实战演练——Concurrent Map 429

8.8 本章小结 436

第四部分 编程实战 438

第9章 一个网络爬虫框架的设计和实现 438

9.1 网络爬虫与框架 438

9.2 功能需求和分析 440

9.3 总体设计 441

9.4 详细设计 443

9.4.1 基本数据结构 443

9.4.2 接口的设计 449

9.5 中间件的实现 459

9.5.1 通道管理器 460

9.5.2 实体池 470

9.5.3 停止信号 477

9.5.4 ID生成器 480

9.6 处理模块的实现 482

9.6.1 网页下载器 483

9.6.2 分析器 488

9.6.3 条目处理管道 494

9.7 调度器的实现 498

9.7.1 基本结构 499

9.7.2 主要的函数和方法 502

9.7.3 请求缓存 521

9.7.4 摘要信息的类型 524

9.8 一个使用演示 530

9.8.1 再看调度器参数 530

9.8.2 开启调度器 535

9.8.3 调度器监控函数 542

9.9 当前的不足和解决思路 552

9.10 本章小结 555

附录 Go语言的学习资源 557