×
图文详情
  • ISBN:9787111655916
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:24cm
  • 页数:11,221页
  • 出版时间:2020-06-01
  • 条形码:9787111655916 ; 978-7-111-65591-6

本书特色

适读人群 :本书适合有 Java 并发开发经验并有良好 Kotlin 基础的读者阅读。(1)作者是腾讯的高级工程师,是Kotlin领域的先驱者、知名布道师、Kotlin领域的网红级专家 (2)本书从工作机制、实现原理、应用场景、使用方法、实践技巧、标准库、框架、应用案例等8个维度对Kotlin协程进行了全面讲解,提供多种语言视角和丰富案例 ★特别提示★:没有Kotlin编程基础知识的读者推荐阅读Kotlin入门读本:《Kotlin编程实践》,点击图片了解详情。

内容简介

本书是一本面向有一定基础的Kotlin开发者的进阶宝典。作者融合自己丰富的工程实践经验, 详细阐述协程的核心概念和实现原理, 并深入探讨如何将Kotlin协程应用到各种应用场景中去, 一步步地剖析协程背后的运行机制, 提供大量的案例分析, 帮读者彻底掌握协程的来龙去脉。

目录


●第1章 异步程序设计介绍 1

1.1 异步的概念 1

1.1.1 程序的执行 1

1.1.2 异步与回调 2

1.1.3 回调地狱 3

1.2 异步程序设计的关键问题 4

1.2.1 结果传递 4

1.2.2 异常处理 6

1.2.3 取消响应 8

1.2.4 复杂分支 9

1.3 常见异步程序设计思路 10

1.3.1 Future 11

1.3.2 CompletableFuture 11

1.3.3 Promise与async/await 13

1.3.4 响应式编程 15

1.3.5 Kotlin协程 15

1.4 本章小结 17

●第2章 协程的基本概念 18

2.1 协程究竟是什么 18

2.2 协程的分类 20

2.2.1 按调用栈分类 20

2.2.2 按调度方式分类 22

2.3 协程的实现举例 22

2.3.1 Python的Generator 23

2.3.2 Lua标准库的协程实现 24

2.3.3 Go的go routine 27

2.4 本章小结 30

●第3章 Kotlin协程的基础设施 31

3.1 协程的构造 31

3.1.1 协程的创建 32

3.1.2 协程的启动 32

3.1.3 协程体的Receiver 34

3.1.4 可挂起的main函数 36

3.2 函数的挂起 37

3.2.1 挂起函数 37

3.2.2 挂起点 38

3.2.3 CPS变换 39

3.3 协程的上下文 41

3.3.1 协程上下文的集合特征 41

3.3.2 协程上下文元素的实现 42

3.3.3 协程上下文的使用 43

3.4 协程的拦截器 45

3.4.1 拦截的位置 45

3.4.2 拦截器的使用 46

3.4.3 拦截器的执行细节 47

3.5 Kotlin协程所属的类别 48

3.5.1 调用栈的广义和狭义 48

3.5.2 调度关系的对立与统一 49

3.6 本章小结 50

●第4章 Kotlin协程的拓展实践 51

4.1 序列生成器 51

4.1.1 仿Python的Generator实现 52

4.1.2 标准库的序列生成器介绍 56

4.2 Promise模型 57

4.2.1 async/await与suspend的设计对比 58

4.2.2 仿JavaScript的async/await实现 59

4.3 Lua风格的协程API 61

4.3.1 非对称API实现 61

4.3.2 对称API实现 67

4.4 再谈协程的概念 72

4.4.1 简单协程与复合协程 73

4.4.2 复合协程的实现模式 73

4.5 本章小结 74

●第5章 Kotlin协程框架开发初探 75

5.1 开胃菜:实现一个delay函数 75

5.2 协程的描述 77

5.2.1 协程的描述类 78

5.2.2 协程的状态 79

5.2.3 支持回调的状态 80

5.2.4 协程的初步实现 83

5.3 协程的创建 84

5.3.1 无返回值的launch 84

5.3.2 实现invokeOnCompletion 85

5.3.3 实现join 89

5.3.4 有返回值的async 90

5.4 协程的调度 92

5.4.1 协程的执行调度 92

5.4.2 协程的调度位置 93

5.4.3 协程的调度器设计 93

5.4.4 基于线程池的调度器 94

5.4.5 基于UI事件循环的调度器 96

5.4.6 为协程添加默认调度器 97

5.5 协程的取消 98

5.5.1 完善协程的取消逻辑 98

5.5.2 支持取消的挂起函数 100

5.5.3 CancellableContinuation的实现 103

5.5.4 改造挂起函数 106

5.6 协程的异常处理 109

5.6.1 定义异常处理器 110

5.6.2 处理协程的未捕获异常 111

5.6.3 区别对待取消异常 111

5.6.4 异常处理器的运用 113

5.7 协程的作用域 113

5.7.1 作用域的概念 113

5.7.2 作用域的声明 114

5.7.3 建立父子关系 116

5.7.4 顶级作用域 116

5.7.5 协同作用域 117

5.7.6 suspend fun main的作用域 119

5.7.7 实现异常的传播 120

5.7.8 主从作用域 121

5.7.9 完整的异常处理流程 122

5.7.10 父协程等待子协程完成 122

5.8 本章小结 123

●第6章 Kotlin协程的官方框架 124

6.1 协程框架概述 124

6.1.1 框架的构成 124

6.1.2 协程的启动模式 126

6.1.3 协程的调度器 127

6.1.4 协程的全局异常处理器 129

6.1.5 协程的取消检查 130

6.1.6 协程的超时取消 132

6.1.7 禁止取消 133

6.2 热数据通道Channel 134

6.2.1 认识Channel 134

6.2.2 Channel的容量 136

6.2.3 迭代Channel 138

6.2.4 produce和actor 138

6.2.5 Channel的关闭 140

6.2.6 BroadcastChannel 142

6.2.7 Channel版本的序列生成器 144

6.2.8 Channel的内部结构 146

6.3 冷数据流Flow 148

6.3.1 认识Flow 149

6.3.2 对比RxJava的线程切换 150

6.3.3 冷数据流 151

6.3.4 异常处理 151

6.3.5 末端操作符 153

6.3.6 分离Flow的消费和触发 153

6.3.7 Flow的取消 154

6.3.8 其他Flow的创建方式 155

6.3.9 Flow的背压 155

6.3.10 Flow的变换 157

6.4 多路复用select 158

6.4.1 复用多个await 158

6.4.2 复用多个Channel 160

6.4.3 SelectClause 161

6.4.4 使用Flow实现多路复用 161

6.5 并发安全 163

6.5.1 不安全的并发访问 163

6.5.2 协程的并发工具 164

6.5.3 避免访问外部可变状态 165

6.6 本章小结 166

●第7章 Kotlin协程在Android上的应用 167

7.1 Android上的异步问题 167

7.2 协程对UI的支持 173

7.3 常见框架的协程扩展 177

7.4 本章小结 184

●第8章 Kotlin协程在Web服务中的应用 185

8.1 多任务并发模型 185

8.2 协程在多任务模型中的运用 190

8.3 常见Web应用框架的协程扩展 193

8.4 本章小结 203

●第9章 Kotlin协程在其他平台上的应用 204

9.1 Kotlin-Js 204

9.2 Kotlin-Native 212

9.3 本章小结 221


展开全部

作者简介

霍丙乾(Bennyhuo) 毕业于北京邮电大学,现任腾讯地图数据采集研发中心团队移动客户端技术负责人。 资深Kotlin技术专家,国内知名的Kotlin开发者和布道师。 2016年10月创建微信公众号Kotlin,持续发布Kotlin相关的文章和教学视频,颇受欢迎。 2017年初开始参与Kotlin中文相关网站的翻译和维护至今。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航