Go并发编程实战 第2版.pdf

news/2024/7/19 11:58:15 标签: 爬虫, 人工智能, 数据结构与算法

下载地址:网盘下载


内容简介  · · · · · ·

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

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

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

作者简介  · · · · · ·

郝林

从业12年有余的软件工匠,国内知名的Go语言技术布道者,Go语言北京用户组和GoHackers社群的发起人和组织者,多套免费在线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



下载地址:网盘下载

转载于:https://www.cnblogs.com/long12365/p/9730431.html


http://www.niftyadmin.cn/n/1108851.html

相关文章

打开计算机查找很久,打开“计算机”很慢要加载很久才能出来盘符,是什么原因,上周用电脑还好好的...

匿名用户1级2015-01-20 回答系统用久,电脑运行肯定会慢,不是电脑配置不行,而是电脑垃圾和插件过多,开机启动项目过多,造成的电脑卡,以及慢的情况,这个时候,最好的选择就是重装系统&a…

中gcd函数_【GCD】函数,计算最大公约数

Excel的GCD函数主要作用是计算最大公约数,本文将说明Microsoft Excel中GCD函数的公式语法及使用方式。GCD函数功能GCD 函数用于计算两个或多个整数的最大公约数。最大公约数是指能同时将两个或多个数字整除的最大整数。GCD函数格式GCD(number1,[number2],…)参数说明…

vue监听页面大小变化重新刷新布局

在项目中由于某些div元素在布局的时候需要初始化宽高,因为当浏览器缩小屏幕的时候需要重新刷新页面视图。 分析思路: 1、在store中创建state,用于保存当前浏览器的宽、高值。 2、在mounted中,使用window.onresize,监听…

图片旋转_系统自带画图程序,图片旋转翻转调整大小修改转换格式图文教程

大家好,我是老盖,感谢观看本篇文章,本文做的也有视频,也可以看我发布的视频。今天给大家讲一下系统自带的画图程序,画图它这个程序包含了很多功能,比如图片调整大小,旋转图片,翻转图…

mfp服务器控制中心,固网HP-1008MFP驱动

固网HP-1008MFP是一款USB2.0单口多功能打印服务器,它是专门针对中小型企业、学校等不具备网络打印功能的打印机(没有网络接口)而设计研发的产品,打印机接上HP-1008MFP就可以为局域网上所有用户提供操作简单、方便快捷的共享打印和共享扫描方式&#xff0…

遇到以前跑一次却没问题的问题,直接maven install 再跑

遇到以前跑一次却没问题的问题,直接maven install 再用tomcat 跑 比如,xml 路径找不到类,奇葩的报错啊转载于:https://www.cnblogs.com/Jomini/p/10314645.html

python 学习网站

2019独角兽企业重金招聘Python工程师标准>>> ##语法 http://python.usyiyi.cn/ ##python标准库http://python.usyiyi.cn/documents/python_278/library/index.html##机器学习 http://scikit-learn.org/https://anaconda.org/自带科学计算库,画图库matoli…

vue 页面url参数_vue不通过路由直接获取url中参数的方法示例

vue不通过路由直接获取url中参数的方法示例vuejs取得URL中参数的值地址:http://localhost:3333/#/index?id128console.log(this.$route.query.id)结果:128使用路由获取页面参数在路由中设置path:{path: /detail/:id/,name: detail,component…