Go并发编程实战

第1章 初识Go语言

  1.1 语言特性

  1.2 安装和设置

  1.3 工程构造

    1.3.1 工作区

    1.3.2 GOPATH

    1.3.3 源码文件

    1.3.4 代码包

  1.4 标准命令简述

  1.5 问候程序

  1.6 小结

第2章 语法概述

  2.1 基本构成要素

    2.1.1 标识符

    2.1.2 关键字

    2.1.3 字面量

    2.1.4 操作符

    2.1.5 表达式

  2.2 基本类型

  2.3 高级类型

    2.3.1 数组

    2.3.2 切片

    2.3.3 字典

    2.3.4 函数和方法

    2.3.5 接口

    2.3.6 结构体

  2.4 流程控制

    2.4.1 代码块和作用域

    2.4.2 if语句

    2.4.3 switch语句

    2.4.4 for语句

    2.4.5 defer语句

    2.4.6 panic和recover

  2.5 聊天机器人

  2.6 小结

第3章 并发编程综述

  3.1 并发编程基础

    3.1.1 串行程序与并发程序

    3.1.2 并发程序与并行程序

    3.1.3 并发程序与并发系统

    3.1.4 并发程序的不确定性

    3.1.5 并发程序内部的交互

  3.2 多进程编程

    3.2.1 进程

    3.2.2 关于同步

    3.2.3 管道

    3.2.4 信号

    3.2.5 socket

  3.3 多线程编程

    3.3.1 线程

    3.3.2 线程的同步

  3.4 多线程与多进程

  3.5 多核时代的并发编程

  3.6 小结

第4章 Go的并发机制

  4.1 原理探究

    4.1.1 线程实现模型

    4.1.2 调度器

    4.1.3 更多细节

  4.2 goroutine

    4.2.1 go语句与goroutine

    4.2.2 主goroutine的运作

    4.2.3 runtime包与goroutine

  4.3 channel

    4.3.1 channel的基本概念

    4.3.2 单向channel

    4.3.3 for语句与channel

    4.3.4 select语句

    4.3.5 非缓冲的channel

    4.3.6 time包与channel

  4.4 实战演练:载荷发生器

    4.4.1 参数和结果

    4.4.2 基本构造

    4.4.3 初始化

    4.4.4 启动和停止

    4.4.5 调用器和功能测试

  4.5 小结

第5章 同步

  5.1 锁的使用

    5.1.1 互斥锁

    5.1.2 读写锁

    5.1.3 锁的完整示例

  5.2 条件变量

  5.3 原子操作

    5.3.1 增或减

    5.3.2 比较并交换

    5.3.3 载入

    5.3.4 存储

    5.3.5 交换

    5.3.6 原子值

    5.3.7 应用于实际

  5.4 只会执行一次

  5.5 WaitGroup

  5.6 临时对象池

  5.7 实战演练-Concurrent Map

  5.8 小结

第6章 网络爬虫框架设计和实现

  6.1 网络爬虫与框架

  6.2 功能需求和分析

  6.3 总体设计

  6.4 详细设计

    6.4.1 基本数据结构

    6.4.2 接口的设计

  6.5 工具的实现

    6.5.1 缓冲器

    6.5.2 缓冲池

    6.5.3 多重读取器

  6.6 组件的实现

    6.6.1 内部基础接口

    6.6.2 组件注册器

    6.6.3 下载器

    6.6.4 分析器

    6.6.5 条目处理管道

  6.7 调度器的实现

    6.7.1 基本结构

    6.7.2 初始化

    6.7.3 启动

    6.7.4 停止

    6.7.5 其他方法

    6.7.6 总结

  6.8 一个简单的图片爬虫

    6.8.1 概述

    6.8.2 命令参数

    6.8.3 初始化调度器

    6.8.4 监控调度器

    6.8.5 启动调度器

  6.9 扩展和思路

  6.10 本章小结

猜你喜欢

转载自www.cnblogs.com/revoid/p/9358069.html