微信读书书城
Kotlin开发教程(全2册)
首页
我的书架
登录
本书已下架
内容不再支持阅读
Kotlin开发教程(全2册)
霍丙乾 水滴技术团队
扉页
版权信息
+
书签
深入理解Kotlin协程
前言
第1章 异步程序设计介绍
1.1 异步的概念
1.1.1 程序的执行
1.1.2 异步与回调
1.1.3 回调地狱
1.2 异步程序设计的关键问题
1.2.1 结果传递
1.2.2 异常处理
1.2.3 取消响应
1.2.4 复杂分支
1.3 常见异步程序设计思路
1.3.1 Future
1.3.2 CompletableFuture
1.3.3 Promise与async/await
1.3.4 响应式编程
1.3.5 Kotlin协程
1.4 本章小结
第2章 协程的基本概念
2.1 协程究竟是什么
2.2 协程的分类
2.2.1 按调用栈分类
2.2.2 按调度方式分类
2.3 协程的实现举例
2.3.1 Python的Generator
2.3.2 Lua标准库的协程实现
2.3.3 Go的go routine
2.4 本章小结
第3章 Kotlin协程的基础设施
3.1 协程的构造
3.1.1 协程的创建
3.1.2 协程的启动
3.1.3 协程体的Receiver
3.1.4 可挂起的main函数
3.2 函数的挂起
3.2.1 挂起函数
3.2.2 挂起点
3.2.3 CPS变换
3.3 协程的上下文
3.3.1 协程上下文的集合特征
3.3.2 协程上下文元素的实现
3.3.3 协程上下文的使用
3.4 协程的拦截器
3.4.1 拦截的位置
3.4.2 拦截器的使用
3.4.3 拦截器的执行细节
3.5 Kotlin协程所属的类别
3.5.1 调用栈的广义和狭义
3.5.2 调度关系的对立与统一
3.6 本章小结
第4章 Kotlin协程的拓展实践
4.1 序列生成器
4.1.1 仿Python的Generator实现
4.1.2 标准库的序列生成器介绍
4.2 Promise模型
4.2.1 async/await与suspend的设计对比
4.2.2 仿JavaScript的async/await实现
4.3 Lua风格的协程API
4.3.1 非对称API实现
4.3.2 对称API实现
4.4 再谈协程的概念
4.4.1 简单协程与复合协程
4.4.2 复合协程的实现模式
4.5 本章小结
第5章 Kotlin协程框架开发初探
5.1 开胃菜:实现一个delay函数
5.2 协程的描述
5.2.1 协程的描述类
5.2.2 协程的状态
5.2.3 支持回调的状态
5.2.4 协程的初步实现
5.3 协程的创建
5.3.1 无返回值的launch
5.3.2 实现invokeOnCompletion
5.3.3 实现join
5.3.4 有返回值的async
5.4 协程的调度
5.4.1 协程的执行调度
5.4.2 协程的调度位置
5.4.3 协程的调度器设计
5.4.4 基于线程池的调度器
5.4.5 基于UI事件循环的调度器
5.4.6 为协程添加默认调度器
5.5 协程的取消
5.5.1 完善协程的取消逻辑
5.5.2 支持取消的挂起函数
5.5.3 CancellableContinuation的实现
5.5.4 改造挂起函数
5.6 协程的异常处理
5.6.1 定义异常处理器
5.6.2 处理协程的未捕获异常
5.6.3 区别对待取消异常
5.6.4 异常处理器的运用
5.7 协程的作用域
5.7.1 作用域的概念
5.7.2 作用域的声明
5.7.3 建立父子关系
5.7.4 顶级作用域
5.7.5 协同作用域
5.7.6 suspend fun main的作用域
5.7.7 实现异常的传播
5.7.8 主从作用域
5.7.9 完整的异常处理流程
5.7.10 父协程等待子协程完成
5.8 本章小结
第6章 Kotlin协程的官方框架
6.1 协程框架概述
6.1.1 框架的构成
6.1.2 协程的启动模式
6.1.3 协程的调度器
6.1.4 协程的全局异常处理器
6.1.5 协程的取消检查
6.1.6 协程的超时取消
6.1.7 禁止取消
6.2 热数据通道Channel
6.2.1 认识Channel
6.2.2 Channel的容量
6.2.3 迭代Channel
6.2.4 produce和actor
6.2.5 Channel的关闭
6.2.6 BroadcastChannel
6.2.7 Channel版本的序列生成器
6.2.8 Channel的内部结构
6.3 冷数据流Flow
6.3.1 认识Flow
6.3.2 对比RxJava的线程切换
6.3.3 冷数据流
6.3.4 异常处理
6.3.5 末端操作符
6.3.6 分离Flow的消费和触发
6.3.7 Flow的取消
6.3.8 其他Flow的创建方式
6.3.9 Flow的背压
6.3.10 Flow的变换
6.4 多路复用select
6.4.1 复用多个await
6.4.2 复用多个Channel
6.4.3 SelectClause
6.4.4 使用Flow实现多路复用
6.5 并发安全
6.5.1 不安全的并发访问
6.5.2 协程的并发工具
6.5.3 避免访问外部可变状态
6.6 本章小结
第7章 Kotlin协程在Android上的应用
7.1 Android上的异步问题
7.1.1 基于UI的异步问题分析
7.1.2 “鸡肋”的AsyncTask
7.1.3 “烫手”的回调
7.1.4 “救世”的RxJava
7.2 协程对UI的支持
7.2.1 UI调度器
7.2.2 协程版AutoDispose
7.2.3 Lifecycle的协程支持
7.3 常见框架的协程扩展
7.3.1 RxJava的扩展
7.3.2 异步组件ListenableFuture
7.3.3 ORM框架Room
7.3.4 图片加载框架coil
7.3.5 网络框架Retrofit
7.3.6 协程风格的对话框
7.4 本章小结
第8章 Kotlin协程在Web服务中的应用
8.1 多任务并发模型
8.1.1 多进程的服务模型
8.1.2 多线程的服务模型
8.1.3 事件驱动与异步I/O
8.2 协程在多任务模型中的运用
8.2.1 协程与异步I/O
8.2.2 协程与“轻量级线程”
8.3 常见Web应用框架的协程扩展
8.3.1 Spring的响应式支持
8.3.2 Vert.x
8.3.3 Ktor
8.4 本章小结
第9章 Kotlin协程在其他平台上的应用
9.1 Kotlin-Js
9.1.1 Kotlin-Js概述
9.1.2 Kotlin-Js上的协程
9.2 Kotlin-Native
9.2.1 Kotlin-Native概述
9.2.2 Kotlin-Native的协程支持
9.3 本章小结
Kotlin核心编程
前言
热身篇 Kotlin基础
第1章 认识Kotlin
1.1 Java的发展
1.2 Scala的百宝箱
1.3 Kotlin——改良的Java
1.4 本章小结
第2章 基础语法
2.1 不一样的类型声明
2.2 val和var的使用规则
2.3 高阶函数和Lambda
2.4 面向表达式编程
2.5 字符串的定义和操作
2.6 本章小结
下水篇 Kotlin核心
第3章 面向对象
3.1 类和构造方法
3.2 不同的访问控制原则
3.3 解决多继承问题
3.4 真正的数据类
3.5 从static到object
3.6 本章小结
第4章 代数数据类型和模式匹配
4.1 代数数据类型
4.2 模式匹配
4.3 增强Kotlin的模式匹配
4.4 用代数数据类型来抽象业务
4.5 本章总结
第5章 类型系统
5.1 null引用:10亿美元的错误
5.2 可空类型
5.3 比Java更面向对象的设计
5.4 泛型:让类型更加安全
5.5 泛型的背后:类型擦除
5.6 打破泛型不变
5.7 本章小结
第6章 Lambda和集合
6.1 Lambda简化表达
6.2 集合的高阶函数API
6.3 集合库的设计
6.4 惰性集合
6.5 内联函数
6.6 本章小结
第7章 多态和扩展
7.1 多态的不同方式
7.2 扩展:为别的类添加方法、属性
7.3 Android中的扩展应用
7.4 扩展不是万能的
7.5 本章小结
第8章 元编程
8.1 程序和数据
8.2 Kotlin的反射
8.3 Kotlin的注解
8.4 本章小结
潜入篇 Kotlin探索
第9章 设计模式
9.1 创建型模式
9.2 行为型模式
9.3 结构型模式
9.4 本章小结
第10章 函数式编程
10.1 函数式编程的特征
10.2 实现Typeclass
10.3 函数式通用结构设计
10.4 类型代替异常处理错误
10.5 本章小结
第11章 异步和并发
11.1 同步到异步
11.2 Kotlin的Coroutine
11.3 共享资源控制
11.4 CQRS架构
11.5 本章小结
遨游篇 Kotlin实战
第12章 基于Kotlin的Android架构
12.1 架构方式的演变
12.2 单向数据流模型
12.3 ReKotlin
12.4 解耦视图导航
12.5 本章小结
第13章 开发响应式Web应用
13.1 响应式编程的关键:非阻塞异步编程模型
13.2 Spring 5:响应式Web框架
13.3 Spring 5响应式编程实战
13.4 本章小结
是否关闭自动购买?
关闭后,阅读到本书未购买章节均需要手动购买确认。
取消
关闭
Kotlin开发教程(全2册)
已读到0% · 共0条笔记
你可以在这里记录本书的
想法、划线、书签
本地导入书籍的 AI 翻译功能
仅支持付费会员使用
微信扫码开通付费会员
一键翻译全文