Benny Huo

学海无涯,其乐无穷

深入理解 Kotlin 协程

本书内容

这是一部从工作机制、实现原理、应用场景、使用方法、实践技巧、标准库、框架、应用案例等多个维度全面讲解Kotlin协程的专著,它同时提供了多语言视角,亦可通过本书了解其他语言的协程。

全书共9章:

第1章从协程的核心应用场景——异步程序设计的思路和关键问题切入,引出Kotlin协程的概念;

第2章首先介绍了协程的概念、分类,然后讲解了Python、Lua、Go等不同语言的协程实现和对比;

第3~4章以 Kotlin 标准库的协程 API 为核心,讲解了简单协程的使用方法和运行机制,以及通过简单协程设计和实现复合协程的思路和方法;

第5~6章以Kotlin的官方协程框架为模板,通过逐步实现其中的核心功能,分析了其中的实现细节和复合协程的运行机制,并对框架的使用做了深入探讨;

第7~8章讲解了协程在Android应用开发和Web服务开发中的应用场景、面临的挑战,以及解决各种常见问题的方法和思路;

第9章探讨了JavaScript 和 Native等非JVM平台对协程的支持情况,以及协程在这些平台上的应用。

反馈方式

感谢大家的关注和支持,如果在阅读过程中遇到问题,欢迎大家选择以下方式与我联系并提供尽可能详细的信息,以便于你的问题能够得到快速的解答:

读者也可以通过加我微信 bennyhuo007,进入微信群参与讨论。

随书源码

本书源码地址《深入理解 Kotlin 协程》源码

购买途径

本书批注

为便于读者理解,针对大家提出疑问的部分附加说明如下:

页码原文说明
153还可以通过 onEach 来做到这一点 … collect 函数可以放到其他任意位置调用collect 函数有一个重载版本可以同时消费 flow,如果用 onEach 消费 flow,则可以在任意位置调用 collect 的无参版本直接激活 flow 而无需考虑消费的问题。

本书勘误

以下为本书勘误,感谢各位读者的支持!

页码发现版本原内容修改为致谢
42021.7由于异步调用是立即返回的由于异步调用是立即返回的luckbing
132021.7它解决了异步结果阻塞主调用流程的问题它解决了异步结果阻塞主调用流程的问题Hepan
382020.6在代码清单 3-8 的①处在代码清单 3-7 的①处论坛 ID: jkwar
422021.7代码清单 3-13 的①处代码清单 3-12 的①处sanren1024
452020.10都会异步挂起(见代码清单 3-8都会异步挂起(见代码清单 3-7silladus
772021.7图 5.1 图 5.1 luozejiaqun
1122021.7图 5.10 图 5.10 luozejiaqun
852020.6block.startCoroutine(completion, completion)block.startCoroutine(completion)论坛 ID: llt
912020.6block.startCoroutine(completion, completion)block.startCoroutine(completion)论坛 ID: llt
1052020.6resumeWith ExceptionresumeWithException论坛 ID: llt
1062020.6在引入取消响应的概念之前,所有的挂起函数都不支持挂起在引入取消响应的概念之前,所有的挂起函数都不支持取消论坛 ID: zaze8736
1142021.7主从作用域:与协作用域…主从作用域:与协作用域…SMAXLYB
1242020.6Kotlin 协程的官方框架 kotlin.coroutines 是一套独立于标准库之外的…Kotlin 协程的官方框架 kotlinx.coroutines 是一套独立于标准库之外的…论坛 ID: llt
1422020.6val broadcastChannel = broadCastChannel(5)val broadcastChannel = BroadCastChannel(5)论坛 ID: llt
1482020.10当然这个过程稍复杂当然这个过程稍显复杂huml
1612020.10那么 onJoin 就是 SelectClauseN类型那么 onJoin 就是 SelectClause0 类型huml
1762021.7已经绑定了UV生命周期已经绑定了UI生命周期luozejiaqun
2052020.6包括浏览器上的 windows 和 document包括浏览器上的 window 和 document论坛 ID: llt
2092020.6windows.asCoroutineDispatcherwindow.asCoroutineDispatcher论坛 ID: llt

说明:

  1. 2020.6 版本的问题已经在 2020.10 版修正。
  2. 2020.10 版本的问题计划在 2021.7 版修正。
0%