首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
协程
鱼洗竹
创建于2022-01-14
订阅专栏
协程二三事
暂无订阅
共10篇文章
创建于2022-01-14
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Flow 操作符
flow 中一次常见的操作符,如 flat 系列、while 系列等,并解释了 flow 是无法取消上游的数据发送
协程二三事
协程一些常见问题:关于 finally 代码块的使用, mutex 使用, cancel() 方法的影响范围
协程中的线程
default 与 io 有可能是同一个线程 协程内部有一套自己的线程池,而且没有强制指定某个线程只能运行 default 或 io 任务,同一个线程有可能前一次运行 default 任务,后一次就运
协程异常处理(二)
总结 协程中发生的异常都会先沿着 job 体系往上传播,不过不同的 job 有不同的处理逻辑,一般有三种: 继续往上传递:launch 与 async 属于此咱类型,因此在 launch/async
协程 CoroutineContext
概念 CoroutineContext 说白了记录的是:协程运行所需要的属性,如调度器、Job 等。这些属性在协程中被叫做 Element,每一个都有唯一的 key 进行标记。 CoroutineCo
挂起函数的返回值
Kotlin 将 suspend 函数的返回值类型是定义成 Object 原因,以及从 suspend 函数恢复的具体流程。
launch 过程分析
协程:在代码层面上就是一个 Continuation 对象。子协程间接持有父协程引用,子协程执行完毕后会回调父协程
协程的几个验证程序
异常处理 正常情况下,父协程收到子协程的异常通知后,首先会取消所有其它子协程,取消自己,然后往上抛异常。 下图为了方便,将 launch 与内部代码统一算作一个协程,实际上两者有区别,不应该算做一个,
协程事三(线程切换及异常)
总结 切到目标线程:通过添加拦截器,在拦截器中切换线程。主要逻辑 Cancellable#startCoroutineCancellable() 中 切回线程: 切到目标线程 协程中切换线程常用的有通
协程之 Flow
flow 的最基本逻辑以及常用操作符:onEmpty, onCompletion 与 catch 的源码分析