kotlin协程基础设施
前言
忙了一段时间的鸿蒙,现在有时间可以看看kotlin了。到目前为止我kotlin对协程的理解,大部分来源《深入理解kotlin协程》这本书。先啃着,后面再写点小玩具、翻翻源码加深一下理解。kotlin协程相关的博客就纯当笔记用了。
协程是什么
早就知道了kotlin协程这个东西,大家都称之为轻量级线程,但貌似没有一个统一的定义。我对协程(Coroutine)的理解是:一种比线程更加轻量级的并发编程模型,由程序自身(而非操作系统)控制调度,可以在单线程内实现并发。协程的核心思想是通过协作式多任务(而非抢占式)让出执行权,避免线程切换的开销。能够被挂起,并且能够再挂起的位置恢复。
协程的分类
按调用栈分
有栈协程(Stackful Coroutine)
每一个协程都有自己的调用栈,有点类似于线程的调用栈,这种情况下协程的实现很大程度上接近线程,主要的不同体现在调度上。
无栈协程(Stackless Coroutine)
协程没有自己的调用栈,挂起点的状态通过状态机或者闭包等语法来实现。
按调度方式分
对称协程(Symmetric Coroutine)
kotlin协程基础设施
https://blog.huangyuanlove.com/2025/08/02/kotlin协程基础设施/