协程定义:线程框架,线程API,好处:处理多任务协作很很方便
代码中协程只哪个:还记得协程是什么吗?启动一个协程可以使用 launch 或者 async 函数,协程其实就是这两个函数中闭包的代码块。
挂起:协程中「挂起」的对象到底是什么?挂起线程,还是挂起函数?都不对,我们挂起的对象是协程。
那此时又是从哪里挂起:从当前线程挂起。换句话说,就是这个协程从正在执行它的线程上脱离
协程就是个线程框架
协程的挂起本质就是线程切出去再切回来
CoroutineContext:协程上下文,可以指定调度器、job、错误处理
// 方法三,自行通过 CoroutineContext 创建一个 CoroutineScope 对象
val coroutineScope = CoroutineScope(context)
coroutineScope.launch {
getImage(imageId)
}
coroutineScope和CoroutineScope区别
CoroutineScope表示指定协程作用域,可以设置和activity的生命周期一致等
coroutineScope:主要在子协程使用,保证结构化并发,理解起来就是父协程会等子协程执行完,在向下执行