首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
kotlin
侠客Ren
创建于2024-01-17
订阅专栏
用于kotlin学习交流
等 4 人订阅
共36篇文章
创建于2024-01-17
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Kotlin多路复用
await多路复用 两个API网络和本地获取数据,期望哪个先返回就用哪个: select会返回最先返回的数据 多路复用channel flow实现多路复用 两个结果都会通过collect输出,耗时最短
kotlin中SAM使用场景
SAM(Single Abstract Method)转换(单一抽象方法转换) 是Kotlin和Java中简化代码机制。允许将一个函数接口(只有一个抽象方法的接口)实例用lambda表达式或函数引用来
kotlin协程并发安全
多个协程修改同一个变量,协程并发不安全例如: 通过线程安全类AtomicInteger,原子操作,保证并发安全。 通过互斥锁Mutex 性能低,耗时明显增大。 MutableStateFlow 通过C
通过动态代理去掉接口强制实现的方法
参考LeakCannary源码,通过Java动态代理和kotlin委托来实现,根据需要实现方法。 当然一般我们想到的方案是通过抽象类实现简化,例如Google例子:AnimatorListenerAd
kotlin中的一些常规使用
前言 方法支持默认参数: 类方法扩展: 函数变量: 内联函数 参数是函数类型的函数,不加inline会导致多生成一个内部类,是lambda函数多出来的类,并且还是静态,会增加内存消耗,inline可以
Mutex
前言 在Java/Kotlin如果某段时间同一时间只有一个线程能够执行时,java通常用synchronized。协程中不能使用synchronized。Kotin协程中使用Mutex(不允许重入的互
Dispatcher.Main的Handler设计成异步消息
前言 MainScope里挂起回调也是通过Handler到主线程looper中执行的。 两种方式实现ui更新间隔1ms,去刷新view的y高度 Handler.postDelay和MainScope.
kotlin无参构造
前言 在Java中创建一个对象有三种方式: 通过new字段创建 通过反射构造方法来创建对象 Unsafe类创建实例 Unsafe类创建实例 Unsafe类创建对象没有使用构造方法,使用了Field u
kotlin协程挂起、恢复、suspend关键字
前言 协程是轻量级的线程 协程又称微线程 协程(Coroutines),是基于线程之上,但又比线程更加轻量级的存在,这种由程序员自己写程序来管理的轻量级线程叫做用户空间线程,具有对内核来说不可见的特性
Kotlin协程Flow与Channel对比
前言 上游和下游属于同一个线程里。 操作符,即函数 上游,通过构造操作符创建 下游,通过末端操作符构建 只有下游才能通知上游放水,Flow属于冷流。生产数据的模块将生产过程封装到flow的上游里,最终
Kotlin-Flow操作符
简单的Flow 构造Flow对象,Flow里成员变量为闭包对象(FlowCollector扩展函数)。调用flow的成员变量传入参数为collect的闭包对象(封装了)。 flow调用流程:两个操作符
Kotlin原理runBlocking luanch join async delay
前言 默认分发器的runBlocking 协程运行在当前线程,若在协程里执行了耗时函数,那么协程之后的代码只能等待。runBlocking常用于一些测试的场景(谁没事写个协程阻塞当前线程呢)。如果在主
Kotlin-协程
前言 Google官网推荐将Kotlin协程作为Android异步编程解决方案: 轻量:在单线程可运行多个协程,挂起(其实就是切线程) Jetpack集成:Jetpack库支持全面协程扩展。提供协程作
Kotlin-StateFlow
前言 StateFlow 是ShareFlow的replay=1,必须有默认值,emit方法永远不会挂起,订阅时总是能够拿到它的最新的一个元素。 在同一个协程2中进行先emit再collect。则只会
Kotlin协程-ShareFlow
前言 replay粘性事件的个数,不同消费者订阅后,重新接收replay个之前的数据。 replay=n时,多次订阅会将生产者的最后n次事件冲i性能发送一遍。 extraBufferCapacity
Kotlin协程-Flow
前言 Flow是基于协程的响应式编程,处理异步数据流。与RxJava相比,Flow优势在于与协程深度集成,更加简洁、直观的API。Flow是冷流,只有在收集端(collect)开始监听时,生产端(em
kotlin协程 Channel
前言 Kotlin协程引入了Channel和Flow,处理数据流,实现生成者-消费者模式,构建响应式应用。处理数据流和异步操作。 Channel是一种热流 Flow是一种冷流 Channel异步数据通
LiveData使用
前言 LiveData更新数据的方法。创建一个LiveData,调用observe方法,传入生命周期owner对象和自定义的观察者。 LiveData源码中的重要属性和方法 LiveData对象有mO
Kotlin协程执行顺序
通过Dispatchers.Unconfined处理德代码相当于如下代码(忽略协程的创建) 由于默认runBlocking()是一个单线程的ContinuationInterceptor,所以prin
Kotlin-协程上下文CoroutineContext
前言 协程是并发编程技术,允许在一个线程执行多个任务,不需要创建多个线程。线程是操作系统概念,协程是编程语言概念。协程可以暂停和恢复执行,线程只能被终止。 CoroutineContext定义了协程的
下一页