深入理解 Kotlin 协程

本书内容

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

全书共9章:

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

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

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

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

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

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

反馈方式

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

另外,为了方便大家交流,创建读者 QQ 群:612797230,欢迎大家加入~

随书源码

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

购买途径

本书批注

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

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

本书勘误

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

说明:以下勘误内容已于 2020年10月第一版 中修订,感谢大家的支持!

页码原内容修改为致谢
38在代码清单 3-8 的①处在代码清单 3-7 的①处论坛 ID: jkwar
85block.startCoroutine(completion, completion)block.startCoroutine(completion)论坛 ID: llt
91block.startCoroutine(completion, completion)block.startCoroutine(completion)论坛 ID: llt
105resumeWith ExceptionresumeWithException论坛 ID: llt
106在引入取消响应的概念之前,所有的挂起函数都不支持挂起在引入取消响应的概念之前,所有的挂起函数都不支持取消论坛 ID: zaze8736
124Kotlin 协程的官方框架 kotlin.coroutines 是一套独立于标准库之外的…Kotlin 协程的官方框架 kotlinx.coroutines 是一套独立于标准库之外的…论坛 ID: llt
142val broadcastChannel = broadCastChannel(5)val broadcastChannel = BroadCastChannel(5)论坛 ID: llt
205包括浏览器上的 windows 和 document包括浏览器上的 window 和 document论坛 ID: llt
209windows.asCoroutineDispatcherwindow.asCoroutineDispatcher论坛 ID: llt