![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
协程
协程
VincentWei95
这个作者很懒,什么都没留下…
展开
-
1.6-协程基础与关键知识:回到线程世界-runBlocking
runBlocking 启动协程不需要 CoroutineScope 是因为它既不需要上下文又不需要被取消runBlocking 的阻塞是线程级别的阻塞,它的定位是把挂起函数的代码转换成阻塞式代码,方便让传统的线程写法 API 使用。原创 2024-07-14 01:31:42 · 215 阅读 · 0 评论 -
1.5-协程基础与关键知识:连接线程的世界-回调型 API 协作
将线程 API 的回调式代码用 suspendCoroutine 或 suspendCancellableCoroutine 包住,就能实现将回调式代码转换为挂起函数在协程执行,需要调用提供的 continuation.resume 和 continuation.resumeWithException 分别处理正常返回结果和异常的情况。原创 2024-07-14 00:40:50 · 349 阅读 · 0 评论 -
1.4-协程基础与关键知识:并行协程的启动和交互
启动协程有两个函数:launch 和 async,async 可以并行启动协程,最后通过 await 等待结果返回,常用于多个处理同时执行后合并结果的操作如果你只是希望两个并行流程在顺序上有某种依赖而不依赖结果,可以用 join 函数,可以做到协程之间互相等待。原创 2024-07-13 22:48:12 · 223 阅读 · 0 评论 -
1.3-协程基础与关键知识:手动切线程-withContext
我们都知道用 suspend 关键字声明一个函数就是挂起函数,那我们什么时候会需要这样自定义一个挂起函数呢?所以自定义挂起函数正确的方式是:我需要一个挂起函数,因为代码需要用到别的挂起函数,所以我需要给函数加上 suspend 关键字声明为挂起函数。声明为挂起函数会限制函数的使用范围,就要遵循 kotlin 的规则来使用。并不存在 [挂起函数怎么写] 这个想法,而是你在写自定义函数的时候,如果里面会用到别的挂起函数,IDE 给我们提示要加上,那就给这个函数加上 supsend;原创 2024-07-12 00:06:17 · 75 阅读 · 0 评论 -
1.2-协程基础与关键知识:协程自动切回来-挂起函数
协程相比线程最大的优势在于,能够在切线程执行完之后再自动切回来,用同步代码的编写方式实现异步代码;而自动切回来的功能是通过挂起函数实现的挂起函数用 suspend 关键字声明,挂起函数在执行时,它所在的协程就被挂起了,或者说被暂停了;挂起函数挂起的时候并没有暂停,而是切到指定的线程执行在 kotlin 协程被挂起指的是它不再占用它正在工作的这个线程,将这个线程让出,暂时给其他资源使用。原创 2024-07-10 00:20:39 · 370 阅读 · 0 评论 -
1.1-协程基础与关键知识:切线程 launch
/ 传参指定线程池核心线程数量// 单线程的线程池...// 使用完后要关闭但用上面的方式在 IDE 会有警告提示,因为它被注解为 @DelicateCoroutinesApi,提示直接使用它是容易出错的,使用后要及时关闭t相比提到的三个常用的 CoroutineDispatcher,因为它们是全局的,所以就没有需要关闭的场景,不需要自己手动关闭。原创 2024-07-06 00:39:18 · 269 阅读 · 0 评论