当前位置: 首页 > news >正文

Go并发编程实战 第2版 PDF (中文版带书签)

 Go并发编程实战 第2版

 

目录

第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://pan.baidu.com/s/1kNJxoFXAalf-1Gf4TcVmVg

关注微信公众号获取提取码:

  输入:go01     获取提取码 

转载于:https://www.cnblogs.com/kuoAT/p/9482408.html

相关文章:

  • html2canvas.js 图片跨域 生成图片模糊 图片偏移 高清图的问题总结
  • 人生苦短我用python(03),如何调试python程序
  • Django 框架07: 状态保持
  • 分类解析
  • 直播中 BarrageRenderer 弹幕的显示
  • linux学习之路:2.基本指令(2)
  • Discuz 配置tag标签页面url静态化(nginx)
  • [BZOJ] 1001: [BeiJing2006]狼抓兔子
  • 机器学习 vs. 深度学习
  • 请碟仙儿│一个区块链思想实验
  • JavaScript-Array类型
  • Jmeter压力测试、操作数据库、断言、分布式压测(添加负载机)学习笔记
  • oracle 修改字符集
  • iOS持续集成(一)——fastlane 使用
  • Python tips(
  • 【Leetcode】104. 二叉树的最大深度
  • Kibana配置logstash,报表一体化
  • LeetCode18.四数之和 JavaScript
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • python docx文档转html页面
  • SpringCloud集成分布式事务LCN (一)
  • 看域名解析域名安全对SEO的影响
  • 浅谈Golang中select的用法
  • 通过npm或yarn自动生成vue组件
  • 在electron中实现跨域请求,无需更改服务器端设置
  • Prometheus VS InfluxDB
  • # Java NIO(一)FileChannel
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .net core Swagger 过滤部分Api
  • .NET Micro Framework初体验
  • .net 验证控件和javaScript的冲突问题
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .net连接MySQL的方法
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • .net中我喜欢的两种验证码
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [C# 网络编程系列]专题六:UDP编程
  • [CSS]文字旁边的竖线以及布局知识
  • [CTO札记]如何测试用户接受度?
  • [dart学习]第四篇:函数
  • [Django 0-1] Core.Email 模块
  • [GN] DP学习笔记板子
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云
  • [HTML]Web前端开发技术28(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • [IE技巧] 如何关闭Windows Server版IE的安全限制