Kotlin协程(同步、异步和常用的API)-阿里云开发者社区

开发者社区> 开发与运维> 正文

Kotlin协程(同步、异步和常用的API)

简介: 一、什么是协程 1.协作程序,解决异步问题 2.应用层完成调度 二、协程要解决的问题 1.看下伪代码 现在开始我们要运行协程啦{ //现在我们在协程里面 //花括号内的代码可以是一段运行在UI线程的代码,比如Android初始化UI val 视图 = .

一、什么是协程
1.协作程序,解决异步问题
2.应用层完成调度

二、协程要解决的问题
1.看下伪代码

现在开始我们要运行协程啦{
    //现在我们在协程里面
    //花括号内的代码可以是一段运行在UI线程的代码,比如Android初始化UI
    val 视图 = ...//初始化视图
    //注意 图片 = 异步加载图片(图片的地址)
    视图.显示图片(图片)
}

2.使异步代码像同步代码一样直观
3.简化异步代码异常处理
4.轻量级的并发方案

三、Kotlin是如何支持协程的
1.编译器对suspend函数的编译支持
2.标准库的基本API支持
3.Kotlin.coroutine框架应用级的支持

四、执行流程
1.协程被编译成状态机
2.suspend函数进行状态转移
开始——状态机(协程执行)——结束

五、运行结果
1.正常的结果通过resume返回
2.异常通过resumeWithException抛出

六、看一些协程的API在哪里
这里写图片描述

七、创建协程和启动协程
创建协程:createCoroutine
启动协程:startCoroutine
这里写图片描述

八、挂起协程
挂起协程:suspendCoroutine
这里写图片描述

九、Continuation接口
运行控制类,负责结果和异常的返回
调用它的API,你传入结果,他就给你返回结果,传入异常他就给你返回异常
这里写图片描述

十、CoroutineContext接口(协程的上下文)
运行上下文、资源持有、运行调度
这里写图片描述

十一、ContinuationInterceptor(协程控制拦截器)
可以用来处理协程调度
这里写图片描述

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章