首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Kotlin协程专栏
yuanhao
创建于2022-04-25
订阅专栏
由于协程知识点涉及比较多,单独拎出来说一下。
等 127 人订阅
共23篇文章
创建于2022-04-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
协程(23) | Flow原理解析
前言 在前面文章中,我们说过在Flow出来之前,Kotlin的协程可能还不足以有绝对优势,在Flow发布之后,协程才真正被大家认可。 在文章 # 协程(10) | Flow 中,我们介绍了Flow的简
协程(22) | Channel原理解析
前言 在前面文章我们介绍过Channel的使用,Channel主要用于协程间的通信,相比于Flow,它还是热的,即不管有没有消费者,它都会往Channel中发射数据,即发射端一直会工作,就和一位热情的
协程(21) | 结构化并发原理解析
Kotlin协程使用CoroutineScope来管理并发,而真正起作用的是Job,建立完父子关系的协程就像是N叉树,取消和异常事件就是事件传递,会向子Job和父Job传递。
协程(20) | 线程调度原理解析
前面文章我们说了协程启动的原理,其中block这段lambda就是协程,然后launch就是对基础API做了封装,其中一个特性就是可以指定其上下文。 而在更早的时
协程(19) | launch{}背后的逻辑
startCoroutine{}可以让一个block当成协程来启动,而block实现就是Continuation子类,通过resume调用进入其状态机。launch就是对基础API进行封装。
协程(18) | 扒一扒挂起函数的扩展函数:startCoroutine{}
前言 在前面文章中,我们重点分析了挂起函数的原理,包括知识点有:挂起函数内部其实就是CPS加状态机的模型,Continuation类似于Callback,即可以用于实现挂起函数向挂起函数外传递数据,也
协程(17) | 扒一扒Continuation和suspendCoroutineUninterceptedOrReturn{}函数
前言 在文章 挂起函数原理解析中,我们把挂起函数经过CPS转换后,通过多出的Continuation变量,以及巧妙的状态机模型,来实现挂起函数的调用。 在文章 # 协程(16) | 优雅地实现一个挂起
协程(16) | 优雅地实现一个挂起函数
前言 不知道你有没有发现,在之前文章中,我们虽然定义了带suspend关键字的挂起函数,但是里面的实现我们一般都是调用其他挂起函数,是协程库提供的,或者第三方库实现的,比如我们熟知的Retrofit库
协程(15) | 挂起函数原理解析
Continuation是一个协程底层概念,表示挂起点返回类型为T的继续。而挂起函数就是CPS+状态机来实现,整个递归调用就使用一个continuaiton对象。
协程(14) | 让你的代码支持Flow
前言 协程到现在,我们已经差不多学完了所有基础知识,包括协程启动方式、挂起函数、结构化并发、异常处理、Channel以及Flow等,而关于Flow的进阶使用以及协程更多进阶使用,在后面还需要继续探索。
协程(13) | 异常处理
本系列专栏 #Kotlin协程 前言 前面文章我们说了协程非常多的特性,比如挂起函数、结构化并发等等,但是也正是由于这些特性,导致协程的异常处理十分麻烦,如果直接使用Java的try-catch那一套
协程(12) | 协程的并发
协程可以看成更轻量的线程,所以可以用协程来做并发。但是并发问题本质还是多线程修改共享变量导致的。所以方案有:Java的同步方案,协程的方案:单线程并发和非阻塞式锁:Mutex。
协程(11) | select简单使用
前言 上一篇关于Flow的文章,其实只是Flow的入门使用,想让Flow真正完全发挥出它的作用,在了解其原理后,我们再了解一些其他扩展的Flow知识才可以。 本篇文章我们来说一个还在实验性值的特性:s
协程(10) | Flow
Flow作为数据流,API分为上游、中间操作符和下游三大类,其中很多是挂起函数,从而实现复杂的业务操作在不同的协程间协作。
协程(09) | 实现一个简易Retrofit
前言 作为Android开发,大名鼎鼎的Retrofit网络请求库肯定都用过,而且在Kotlin更新协程后,Retrofit也第一时间更新了协程方式、Flow方式等模式,这篇文章我们利用前面的学习知识
协程(8) | Channel
Channel是一个管道,可以用在协程间通信,而且发送和接收都是挂起函数,用于返回多个结果的情况,比如APP首页实时显示后台GPS数据,同时它是"热"的。
协程(7) | CoroutineContext
Context可以理解为环境变量的集和。协程中很多类都是它的子类,而本身设计接口类似Map,所以可以用+、[]来方便构建想要的对象
协程(6) | 结构化并发
协程的结构化并发让协程具备了线程所不具有的功能,让协程存在父子关系。结构化即带结构和层次,可以在协程取消时特别方便。
协程(5) | Job的生命周期
本系列专栏 https://juejin.cn/column/7090416754840567816 前言 前面文章我们介绍了协程的挂起和恢复,同时说了挂起函数的本质。那协程既然是运行在线程上轻量的T
协程(4) | 挂起函数
挂起函数就是添加了suspend关键字的函数,编译器会把suspend函数通过CPS转换换成CallBack方式。而协程的block本质就是挂起函数,挂起和恢复是协程底层能力,挂起函数是上层表现
下一页