Kotlin协程
文章平均质量分 83
kotlin官方文档翻译及理解
昉钰
这个作者很懒,什么都没留下…
展开
-
6、通道(Channels)
本节介绍通道----Channels(官方文档)Deferred values提供了一种在协程之间传递单个值的简便方式,通道(channels)则提供了在协程间传递流的方法。1、Channel basics熟悉Java的读者应该都知道阻塞队列BlockingQueue,而这里说的通道在概念上则与BlockingQueue非常相似,一个重要的区别是通道使用的是suspend的send方法存储数据而BlockingQueue使用的是阻塞的put方法,同时在取数据的时候通道使用的是suspend的re原创 2021-02-03 23:02:54 · 3986 阅读 · 0 评论 -
5、异步流(Asynchronous Flow)
异步流一个suspend函数异步的返回一个值,但是我们怎么返回多个异步计算的值呢?这就是kotlin流(Flows)存在的理由。1、多个值的表示在kotlin中可以使用集合collections来表示多个值,比如我们有个simple函数用于返回一个包含3个值的List,然后使用forEach把他们打印出来,代码如下:package com.cool.cleaner.testfun simple(): List<Int> = listOf(1, 2, 3)fun m..翻译 2020-12-27 20:43:20 · 1086 阅读 · 0 评论 -
4、协程上下文及协程调度器
协程上下文和协程调度器(官方文档)协程通常运行于协程标准库中定义的CoroutineContext所代表协程上下文中。协程上下文其实是一系列的不同元素集合,其中最主要的元素就是之前我们用过的协程Job,还有这里将要介绍的协程调度器。1、协程调度器和线程协程上下文中包含一个协程调度器(CoroutineDispatcher)可以用来调度协程的执行,它将决定协程是运行于线程中还是线程池中。协程调度器可以限定一个协程运行在特定的线程中、调度到线程池中运行或者无限制的运行在线程之间。所有的协程构翻译 2020-12-27 14:47:58 · 681 阅读 · 0 评论 -
3、suspend函数的使用(组合)
suspend函数的使用(官方文档)这部分讨论suspend函数的各种使用方式。1、默认顺序执行假如有两个suspend函数,他们需要去访问远程服务或者执行一些计算,对于当前的例子我们使用延时来模仿实际的任务,代码如下:package com.cool.cleaner.testimport kotlinx.coroutines.delaysuspend fun doSomethingUsefulOne(): Int { delay(1000) return 13}翻译 2020-12-26 16:07:53 · 2700 阅读 · 0 评论 -
2、协程的取消及超时
这部分主要介绍协程的取消及超时(官方文档)1、取消协程在一个长时间运行的应用中你可能需要更细粒度的控制你的后台协程,比如一个用户在页面中启动了一个协程然后很快又把它关闭了,此时协程的返回结果已经不需要了,那么就应该在页面关闭的时候把它给取消掉;launch函数会返回一个job,你可以用这个job来取消协程的执行:输出如下:当主函数中调用job.cancel的时候,因为协程已经取消就没有继续执行了;另外如果使用函数cancelAndJoin其实就相当于cancel和join的组合。2、取消是协翻译 2020-12-26 00:16:33 · 794 阅读 · 0 评论 -
1、协程基础
协程基础 这部分主要包括协程的一些基本概念。 你的第一个协程 贯通阻塞与非阻塞世界 等待执行结果 结构化并发 构建协程作用域 函数提取 轻量级的协程 全局作用域的协程 目录 你的第一个协程 贯通阻塞与非阻塞世界 等待执行结果 结构化并发 构建协程作用域 函数提取 轻量级的协程 全局作用域的协程 尝试运行下面的代码...翻译 2020-12-25 19:29:08 · 176 阅读 · 0 评论 -
kotlin协程系列文章
kotlin作为一门编程语言,它只提供了最小化的API来保证其他第三方库能使用协程;与其他提供协程功能的语言不同的是在kotlin中async和await并不属于关键字,也不属于语言标准库的一部分。然而,对于异步操作来说,相比其他语言提供的Futrue(比如Java中的Futrue)抽象,kotlin的挂起函数(suspend)被证明是一种更安全、更少出错的概念。 kotlinx.coroutines 是JetBrains公司开发的功能丰富的协程库,它包含很多使用协程功能的方法,比如:launch、...翻译 2020-12-25 18:27:20 · 156 阅读 · 0 评论