协程在Kotlin中文文档的解释是轻量级的线程,Go、Python 等很多现成语言在语言层面上都实现协程,不过Kotlin和他们不同的的是,Kotlin协程本质上只是一套基于原生Java线程池 的封装,...挂起:suspend
在协程里suspend是一个重要的关键字,这个关键字只是起到的提醒的作用,当代码执行到suspend时,会从当前线程挂起这个函数,然后代码继续执行,而挂起的函数从当前线程脱离,然后继续执行...挂起函数线程切换
从上面看我们已经挂起了函数,让程序脱离当前的线程,kotlin 协程提供了一个 withContext() 方法,来实现线程切换。..., 协程执行到 第一个挂起点 之前 , 如果取消协程 , 则不进行响应取消操作 ;
LAZY 模式
协程创建后 , 不会马上开始调度执行 , 只有 主动调用协程的 start , join , await...方法 时 , 才开始调度执行协程 , 如果在 调度之前取消协程 , 该协程直接报异常 进入异常响应状态 ;
UNDISPATCHED 模式
协程创建后,立即在当前的函数调用栈执行协程任务,直到遇到第一个挂起函数