![](https://img-blog.csdnimg.cn/20200913092937676.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
协程Coroutine
文章平均质量分 78
从基础概念入手带你深入了解kotlin的协程是什么,有什么作用,怎么使用协程
任缥缈
天狼啸月的追逐
展开
-
细说协程零六、协程泄露及async异常的处理
前言一、有效避免协程泄露的方式1、通过Job来处理2、通过MainScope()来处理3、viewModelScope对象4、lifecycleScope对象二、异常Exception以及async并发下的异常处理三、几个题外话:1、RxJava与kotlin协程比较2、AsyncTask内存泄露3、协程的delay()和Thread.sleep()谁的性能更好?4、什么时候需要切线程?Android项目开发中对协程的应用是比较灵活的,虽然依然是用****.luanch()来开启一段协程,通常指定Disp原创 2020-09-27 21:41:37 · 1702 阅读 · 2 评论 -
细说协程零五、Kotlin协程常用Api,只需本文就足够了
fun <V> requestData(mObservable: Observable<BaseData<V>>,callBack: HttpCallBack<V>): Disposable { return mObservable.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(obj原创 2020-09-15 18:57:33 · 800 阅读 · 0 评论 -
细说协程零二、为什么要用协程
首先我们来看看目前Android开发中成熟的Retrofit + OkHttp + RxJava网络请求的格式:fun <V> requestData(mObservable: Observable<BaseData<V>>,callBack: HttpCallBack<V>): Disposable { return mObservable.subscribeOn(Schedulers.io()) .observeOn(原创 2020-09-15 18:15:29 · 378 阅读 · 0 评论 -
细说协程零四、Koltin协程的基本要素
Koltin协程的基本要素基本上都是上一节里面我们提到的那些元素:kotlin标准库、上下文、拦截器、挂起函数等等。这一节我们先来看看挂起函数。挂起函数val user = githubApi.getUserSuspend("bennyhuo")println(user)suspend fun getUserSuspend(): User { return githubApi.getUserSuspend("haoyuegongzi")} interface GitHubApi {原创 2020-09-15 11:05:16 · 324 阅读 · 0 评论 -
细说协程零三、协程的常见实现
一、协程的分类:1、按调用栈分:有栈协程:每隔协程会分配单独的类似线程的调用栈,比如Lua Coroutine;无栈协程:不会分配单独的调用栈,挂起点的状态通过闭包或者对象来保存,没办法嵌套函数,实现挂起,比如Python Generator。挂起和恢复没有函数的嵌套是无盏协程的非常典型的特征,否则即为有盏协程。有栈协程涉及到分配独立的内存等硬件资源,这是额外的资源开销,因此有栈协程的使用受到一定限制,没有无栈协程受欢迎。Kotlin、JavaScript、C#这些语言的协程都是属于无栈协程。2原创 2020-09-13 18:03:34 · 731 阅读 · 0 评论 -
细说协程零一、协程的概念
序引:什么是进程和线程直白地讲,进程就是应用程序的启动实例。比如我们运行一个游戏,打开一个软件,就是开启了一个进程。进程拥有代码和打开的文件资源、数据资源、独立的内存空间。线程又是什么呢?线程从属于进程,是程序的实际执行者。一个进程至少包含一个主线程,也可以有多个子线程。同时,线程拥有自己的栈空间。总结起来就是:对操作系统来说,进程是CPU进行资源分配和管理的最小单元,线程是CPU调度任务执行的最小单元。影子:什么是协程1、协程就是可以由程序自行控制挂起(暂停执行)、恢复(继续在原来暂停的地方原创 2020-09-13 10:07:02 · 495 阅读 · 1 评论