首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
协程
订阅
可口不可乐
更多收藏集
微信扫码分享
微信
新浪微博
QQ
22篇文章 · 0订阅
抽丝剥茧Kotlin - 协程
文章接上篇,这一篇我们好好聊一聊协程的原理,通过上一篇的学习,相信大家对于如何使用协程已经非常熟悉了。 有人说,a 和 b 会串行执行,有人说,a 和 b 会并行执行,那么执行的结果到底是什么样的?我们将在下面的文章给出。 首先,我们得明确协程中有哪些东西,如果你会使用协程,那…
破解 Kotlin 协程(11) - Flow 篇
随着 RxJava 的流行,响应式编程模型逐步深入人心。Flow 就是 Kotlin 协程与响应式编程模型结合的产物。 本文基于 Kotlinx.coroutines1.3.3,由于部分功能尚处于实验阶段,后续也可能会发生细微的调整。 受 RestrictsSuspension…
破解 Kotlin 协程(10) - Select 篇
不管先调用哪个 API 返回的 Deferred 的 await,都会被挂起,如果想要实现这一需求就要启动两个协程来调用 await,这样反而将问题复杂化了。 大家可以看到,我们没有直接调用 await,而是调用了 onAwait 在 select 当中注册了个回调,不管哪个先…
破解 Kotlin 协程 番外篇(1) - 协程为什么被称为『轻量级线程』?
文中如果没有特别说明,协程指编程语言级别的协程,线程则特指操作系统内核线程。 1. 协程到底是啥? Kotlin 的协程从 v1.1 开始公测(Experimental) 到现在,已经算是非常成熟了,但大家对它的看法却一直存在各种疑问,为什么呢?因为即便我们把 Kotlin 丢…
破解 Kotlin 协程(9) - Channel 篇
1. 认识 Channel Channel 实际上就是一个队列,而且是并发安全的,他可以用来连接协程,实现不同协程的通信。废话不多说,直接看例子: 我们构造了俩个协程,分别叫他们 producer 和 consumer, 我们没有明确的指定调度器,所以他们的调度器都是默认的,在…
破解 Kotlin 协程(8) - Android 篇
1. 配置依赖 这个框架里面包含了 Android 专属的 Dispatcher,我们可以通过 Dispatchers.Main 来拿到这个实例;也包含了 MainScope,用于与 Android 作用域相结合。 anko-coroutines 仅供参考,现阶段(2019.4…
破解 Kotlin 协程(7) - 序列生成器篇
1. 认识 Sequence 在 Kotlin 当中,Sequence 这个概念确切的说是“懒序列”,产生懒序列的方式可以有多种,下面我们介绍一种由基于协程实现的序列生成器。需要注意的是,这个功能内置于 Kotlin 标准库当中,不需要额外添加依赖。 这个 sequence 实…
破解 Kotlin 协程(6) - 协程挂起篇
1. 先看看 delay 我们刚刚学线程的时候,最常见的模拟各种延时用的就是 Thread.sleep 了,而在协程里面,对应的就是 delay。sleep 让线程进入休眠状态,直到指定时间之后某种信号或者条件到达,线程就尝试恢复执行,而 delay 会让协程挂起,这个过程并不…
破解 Kotlin 协程(4) - 异常处理篇
1. 引子 那么问题来了,既然是请求,总会有失败的情形,而我们这里并没有对错误的处理,接下来我们就完善这个例子。 2. 添加异常处理逻辑 是的,你没看错,一个异步的请求异常,我们只需要在我们的代码中捕获就可以了,这样做的好处就是,请求的全流程异常都可以在一个 try ... c…
破解 Kotlin 协程(3) - 协程调度篇
1. 协程上下文 调度器本质上就是一个协程上下文的实现,我们先来介绍下上下文。 前面我们提到 launch 函数有三个参数,第一个参数叫 上下文,它的接口类型是 CoroutineContext,通常我们见到的上下文的类型是 CombinedContext 或者 EmptyCo…