摘要: 通道:延期的值提供了⼀种便捷的⽅法使单个值在多个协程之间进⾏相互传输。通道提供了⼀种在流中传输 值的⽅法。 通道基础: ⼀个 Channel 是⼀个和 BlockingQueue ⾮常相似的概念。其中⼀个不同是它代替了阻塞的 put 操 作并提供了挂起的 send,还替代了阻塞的 take 操作并提 阅读全文
posted @ 2021-03-17 23:00 王世桢 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 异步流 挂起函数可以异步的返回单个值,但是该如何异步返回多个计算好的值呢?这正是 Kotlin 流(Flow)的 ⽤武之地。 表示多个值 在 Kotlin 中可以使⽤集合来表⽰多个值。⽐如说,我们可以拥有⼀个函数 foo() ,它返回⼀个包含三 个数字的 List,然后使⽤ forEach 打印它们 阅读全文
posted @ 2021-03-17 21:47 王世桢 阅读(548) 评论(0) 推荐(1) 编辑
摘要: 协程上下⽂与调度器 协程总是运⾏在⼀些以 CoroutineContext 类型为代表的上下⽂中,它们被定义在了 Kotlin 的标准库 ⾥。 协程上下⽂是各种不同元素的集合。其中主元素是协程中的 Job,我们在前⾯的⽂档中⻅过它以及它的 调度器,⽽本⽂将对它进⾏介绍。 调度器与线程 协程上下⽂包含 阅读全文
posted @ 2021-03-17 17:39 王世桢 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 默认顺序调用 假设我们在不同的地⽅定义了两个进⾏某种调⽤远程服务或者进⾏计算的挂起函数。我们只假设它们都是有⽤的,但是实际上它们在这个⽰例中只是为了该⽬的⽽延迟了⼀秒钟: suspend fun doSomethingUsefulOne(): Int { delay(1000L) // 假设我们在这 阅读全文
posted @ 2021-03-17 16:23 王世桢 阅读(531) 评论(0) 推荐(0) 编辑