当前位置:主页 > 计算机电子书 > 程序设计 > Go语言下载
Go并发编程实战

Go并发编程实战 PDF 第2版

  • 更新:2020-09-18
  • 大小:42.2 MB
  • 类别:Go语言
  • 作者:郝林
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

Go并发编程实战(第2版)首先介绍了Go语言的优秀特性、安装设置方法、工程结构、标准命令和工具、语法基础、数据类型以及流程控制方法,接着阐述了与多进程编程和多线程编程有关的知识,然后重点介绍了goroutine、channel以及Go提供的传统同步方法,最后通过一个完整实例——网络爬虫框架进一步阐述Go语言的哲学和理念,同时分享作者在多年编程生涯中的一些见解和感悟。

与上一版相比,本书不仅基于Go 1.8对上一版进行了全面更新,而且更深入地描绘了Go运行时系统的内部机理,并且大幅改进了示例代码。

本书适用于有一定计算机编程基础的从业者以及对Go语言编程感兴趣的爱好者,非常适合作为Go语言编程进阶教程。

目录

  • 第1章 初识Go语言  1
  • 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

资源下载

资源下载地址1:https://pan.baidu.com/s/1AMwxaA3GtRw9uM4bjxJcyw

相关资源

网友留言