Kotlin 协程
文章平均质量分 84
韩曙亮
中国人民大学硕士 , 专注于 移动开发 领域 , 博客专家 , 2023 年博客之星 TOP1 , 2021 年博客之星 TOP9 , 华为云 云享专家 , 阿里云社区 专家博主 , 51CTO 专家博主 ;
展开
-
【Kotlin 协程】协程并发安全问题 ( 使用 Atomic 并发安全类型 | 使用 Channel 通道 | 使用 Mutext 轻量级锁 | 使用 Semaphore 轻量级信号量 )
一、协程不安全数据访问、二、使用 Atomic 并发安全类型、三、使用 Channel 通道、四、使用 Mutext 轻量级锁、五、使用 Semaphore 轻量级信号量、原创 2023-01-01 19:14:21 · 1932 阅读 · 0 评论 -
【Kotlin 协程】协程中的多路复用技术 ② ( select 函数原型 | SelectClauseN 事件 | 查看挂起函数是否支持 select )
一、select 函数原型、二、Select clause 事件、1、SelectClause0 事件代码示例、2、SelectClause2 事件代码示例、三、查看挂起函数是否支持 select、原创 2022-12-31 23:32:53 · 1233 阅读 · 0 评论 -
【Kotlin 协程】协程中的多路复用技术 ① ( 多路复用技术 | await 协程多路复用 | Channel 通道多路复用 )
一、多路复用技术、二、await 协程多路复用、三、Channel 通道多路复用原创 2022-12-29 22:18:08 · 1284 阅读 · 0 评论 -
【Kotlin 协程】Channel 通道 ⑤ ( BroadcastChannel 广播通道 | 代码示例 )
一、BroadcastChannel 广播通道、二、代码示例原创 2022-12-28 11:38:35 · 1329 阅读 · 0 评论 -
【Kotlin 协程】Channel 通道 ④ ( Channel 通道的热数据流属性 | Channel 通道关闭过程 | Channel 通道关闭代码示例 )
一、Channel 通道的热数据流属性、二、Channel 通道关闭过程、三、Channel 通道关闭代码示例原创 2022-12-28 11:13:08 · 4086 阅读 · 0 评论 -
【Kotlin 协程】Channel 通道 ③ ( CoroutineScope#produce 构造生产者协程 | CoroutineScope#actor 构造消费者协程 )
一、CoroutineScope#produce 构造生产者协程、1、CoroutineScope#produce 函数原型、2、代码示例、二、CoroutineScope#actor 构造消费者协程、1、CoroutineScope#actor 函数原型、2、代码示例原创 2022-12-27 22:47:46 · 1180 阅读 · 0 评论 -
【Kotlin 协程】Channel 通道 ② ( Channel 通道容量 | Channel 通道迭代 | 使用 iterator 迭代器进行迭代 | 使用 for in 循环进行迭代 )
一、Channel 通道容量、二、Channel 通道迭代、1、使用 iterator 迭代器进行迭代、2、使用 for in 循环进行迭代原创 2022-12-27 21:54:31 · 1010 阅读 · 0 评论 -
【Kotlin 协程】Channel 通道 ① ( Channel#send 发送数据 | Channel#receive 接收数据 )
一、Channel 通道、二、Channel#send 发送数据、三、Channel#receive 接收数据、四、Channel 通道代码示例原创 2022-12-27 11:59:24 · 1303 阅读 · 0 评论 -
【Kotlin 协程】Flow 流收尾工作 ( finally 代码块收尾 | onCompletion 代码块收尾 | onCompletion 中获取异常信息 | catch 代码块中捕获异常 )
一、Flow 流收尾工作、二、onCompletion 函数原型、三、finally 代码块收尾、四、onCompletion 代码块收尾、五、onCompletion 代码块中获取异常信息、六、catch 代码块中捕获异常、原创 2022-12-27 10:13:53 · 1496 阅读 · 0 评论 -
【Kotlin 协程】Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )
一、Flow 流异常处理、二、收集元素异常处理、1、收集元素异常代码示例、2、收集元素捕获异常代码示例、三、发射元素异常处理、1、发射元素异常代码示例、2、发射元素异常捕获代码示例原创 2022-12-26 22:27:51 · 1447 阅读 · 0 评论 -
【Kotlin 协程】Flow 流展平 ( 连接模式 flatMapConcat | 合并模式 flatMapMerge | 最新展平模式 flatMapLatest )
一、Flow 流展平、1、连接模式 flatMapConcat 代码示例、2、合并模式 flatMapMerge 代码示例、3、最新展平模式 flatMapLatest 代码示例原创 2022-12-26 18:37:25 · 3478 阅读 · 0 评论 -
【Kotlin 协程】Flow 流组合 ( Flow#zip 组合多个流 | 新组合流的元素收集间隔与被组合流元素发射间隔的联系 )
一、Flow 流组合、1、Flow#zip 组合多个流、2、新组合流的元素收集间隔与被组合流元素发射间隔的联系原创 2022-12-26 16:53:58 · 2439 阅读 · 0 评论 -
【Kotlin 协程】Flow 操作符 ② ( 末端操作符 | collect 操作符 | reduce 操作符 | single 操作符 | first 操作符 | toList 操作符 )
一、末端操作符、1、collect 操作符、2、reduce 操作符、3、single 操作符、4、first 操作符、5、fold 操作符、6、toList 操作符、7、toSet 操作符、原创 2022-12-26 15:58:32 · 1358 阅读 · 0 评论 -
【Kotlin 协程】Flow 操作符 ① ( 过渡操作符 | map 操作符 | transform 操作符 | 限长操作符 | take 操作符 )
一、过渡操作符、1、map 操作符、2、transform 操作符、二、限长操作符 ( take 操作符 )、原创 2022-12-26 11:48:17 · 1458 阅读 · 0 评论 -
【Kotlin 协程】Flow 异步流 ⑧ ( 背压概念 | 使用缓冲处理背压问题 | 使用 flowOn 处理背压问题 | 从提高收集元素效率方向解决背压问题 )
一、背压概念、二、使用缓冲处理背压问题、三、使用 flowOn 处理背压问题、四、从提高收集元素效率方向解决背压问题、1、Flow#conflate 代码示例、2、Flow#collectLatest 代码示例、原创 2022-12-24 23:54:47 · 1858 阅读 · 0 评论 -
【Kotlin 协程】Flow 异步流 ⑦ ( 调用 FlowCollector#emit 发射元素时自动执行 Flow 流的取消检测 | 启用检测 Flow 流的取消cancellable函数 )
一、调用 FlowCollector#emit 发射元素时自动执行 Flow 流的取消检测、二、调用 Flow#cancellable() 函数启用检测 Flow 流的取消、1、流取消失败代码示例、2、启用检测 Flow 流的取消代码示例原创 2022-12-23 18:31:09 · 1977 阅读 · 0 评论 -
【Kotlin 协程】Flow 异步流 ⑥ ( 调用 Flow#launchIn 函数指定流收集协程 | 通过取消流收集所在的协程取消流 )
一、调用 Flow#launchIn 函数指定流收集协程、1、指定流收集协程、2、Flow#launchIn 函数原型、3、代码示例、二、通过取消流收集所在的协程取消流、原创 2022-12-23 16:40:13 · 1559 阅读 · 0 评论 -
【Kotlin 协程】Flow 异步流 ⑤ ( 流的上下文 | 上下文保存 | 查看流发射和收集的协程 | 不能在不同协程中执行流的发射和收集操作 | 修改流发射的协程上下文 | flowOn函数 )
一、流的上下文、1、上下文保存、2、流收集函数原型、3、流发射函数原型、4、代码示例 - 查看流发射和收集的协程、5、代码示例 - 不能在不同协程中执行相同流的发射和收集操作、二、修改流发射的协程上下文、1、Flow#flowOn 函数原型、2、代码示例、原创 2022-12-23 14:52:41 · 1133 阅读 · 0 评论 -
【Kotlin 协程】Flow 异步流 ④ ( 流的构建器函数 | flow 构建器函数 | flowOf 构建器函数 | asFlow 构建器函数 )
一、流的构建器函数、1、flow 构建器、2、flowOf 构建器、3、asFlow 构建器、原创 2022-12-23 13:35:18 · 1454 阅读 · 0 评论 -
【Kotlin 协程】Flow 异步流 ③ ( 冷流 | 流被收集时运行 | 流的连续性 )
一、冷流 ( 流被收集时运行 )、二、流的连续性原创 2022-12-22 17:53:29 · 1606 阅读 · 0 评论 -
【Kotlin 协程】Flow 异步流 ② ( 使用 Flow 异步流持续获取不同返回值 | Flow 异步流获取返回值方式与其它方式对比 | 在 Android 中使用 Flow 异步流下载文件 )
一、使用 Flow 异步流持续获取不同返回值、二、Flow 异步流获取返回值方式与其它方式对比、三、在 Android 中 使用 Flow 异步流下载文件原创 2022-12-22 15:19:39 · 1508 阅读 · 0 评论 -
【Kotlin 协程】Flow 异步流 ① ( 以异步返回返回多个返回值 | 同步调用返回多个值的弊端 | 尝试在 sequence 中调用挂起函数返回多个返回值 | 协程中调用挂起函数返回集合 )
一、以异步返回返回多个返回值、二、同步调用返回多个值的弊端、三、尝试在 sequence 中调用挂起函数返回多个返回值、四、协程中调用挂起函数返回集合原创 2022-12-22 13:39:42 · 1612 阅读 · 0 评论 -
【Kotlin 协程】协程异常处理 ⑤ ( 异常传播的特殊情况 | 取消子协程示例 | 子协程抛出异常后父协程处理异常时机示例 | 异常聚合 | 多个子协程抛出的异常会聚合到第一个异常中 )
一、异常传播的特殊情况、1、取消子协程示例、2、子协程抛出异常后父协程处理异常时机示例、二、异常聚合 ( 多个子协程抛出的异常会聚合到第一个异常中 )原创 2022-12-06 00:50:19 · 860 阅读 · 0 评论 -
【Kotlin 协程】协程异常处理 ④ ( Android 协程中出现异常导致应用崩溃 | Android 协程中使用协程异常处理器捕获异常 | Android 全局异常处理器 )
一、Android 协程中出现异常导致应用崩溃、二、Android 协程中使用协程异常处理器捕获异常、三、Android 全局异常处理器原创 2022-12-05 16:49:17 · 1742 阅读 · 0 评论 -
【Kotlin 协程】协程异常处理 ③ ( 协程异常处理器 CoroutineExceptionHandler 捕获异常 | 验证 CoroutineScope 协程的异常捕捉示例 )
一、协程异常处理器 CoroutineExceptionHandler 捕获异常1、对比 launch 和 async 创建的协程的异常捕捉示例2、验证 CoroutineScope 协程的异常捕捉示例原创 2022-12-05 15:28:26 · 2343 阅读 · 0 评论 -
【Kotlin 协程】协程异常处理 ② ( SupervisorJob 协程 | supervisorScope 协程作用域构建器函数 )
一、SupervisorJob 协程、二、supervisorScope 协程作用域构建器函数原创 2022-12-04 23:53:21 · 1742 阅读 · 0 评论 -
【Kotlin 协程】协程异常处理 ① ( 根协程异常处理 | 自动传播异常 | 在协程体捕获异常 | 向用户暴露异常 | 在 await 处捕获异常 | 非根协程异常处理 | 异常传播特性 )
一、协程异常处理、二、根协程自动传播异常、1、异常抛出点 ( 协程体抛出异常 )、2、异常捕获点 ( 在协程体捕获异常 )、三、根协程向用户暴露异常、1、异常抛出点 ( 在 await、receive 处抛出异常 )、2、异常捕获点 ( 在 await、receive 处捕获异常 )、四、非根协程异常处理、五、异常传播特性、原创 2022-12-04 00:06:42 · 1358 阅读 · 0 评论 -
【Kotlin 协程】协程上下文 ( 协程上下文构成要素 | 指定协程上下文元素组合 | 协程上下文元素的继承关系 | 协程上下文元素的几种指定形式 | 默认 | 继承 | 自定义指定 )
一、协程上下文构成要素、二、指定协程上下文元素组合、三、协程上下文元素的继承关系、四、协程上下文元素的几种指定形式 ( 默认 | 继承 | 自定义指定 )原创 2022-12-03 00:36:26 · 1462 阅读 · 1 评论 -
【Kotlin 协程】协程取消 ③ ( finally 释放协程资源 | 使用 use 函数执行 Closeable 对象释放资源操作 | 构造无法取消的协程任务 | 构造超时取消的协程任务 )
一、释放协程资源、二、使用 use 函数执行 Closeable 对象释放资源操作、三、使用 withContext(NonCancellable) 构造无法取消的协程任务、四、使用 withTimeoutOrNull 函数构造超时取消的协程任务原创 2022-11-30 23:37:18 · 2225 阅读 · 1 评论 -
【Kotlin 协程】协程取消 ② ( CPU 密集型协程任务取消 | 使用 isActive 判定协程状态 | 使用 ensureActive 函数取消协程 | 使用 yield 函数取消协程 )
一、CPU 密集型协程任务取消、二、使用 isActive 判定当前 CPU 密集型协程任务是否取消、三、使用 ensureActive 自动处理协程退出、四、使用 yield 函数检查协程状态并处理协程取消操作原创 2022-11-30 20:30:48 · 2730 阅读 · 1 评论 -
【Kotlin 协程】协程取消 ① ( 协程作用域取消 | 协程作用域子协程取消 | 通过抛出异常取消协程 | Job#cancel 函数 | 自定义异常取消协程 )
一、协程取消、二、协程作用域取消、三、协程作用域子协程取消、四、通过抛出异常取消协程、1、Job#cancel 函数、2、默认异常取消协程、3、自定义异常取消协程、原创 2022-11-30 17:28:20 · 2438 阅读 · 0 评论 -
【Kotlin 协程】协程启动 ⑥ ( 协程生命周期状态 | 新创建 New | 活跃 Active | 完成中 Completing | 已完成 Completed | 取消中 | 已取消 )
一、协程标识 Job 实例对象二、协程生命周期状态三、协程生命周期状态改变原创 2022-11-28 17:03:07 · 781 阅读 · 0 评论 -
【Kotlin 协程】协程启动 ⑤ ( 协程作用域构建器 | runBlocking 函数 | coroutineScope 函数 | supervisorScope 函数 )
一、结构化并发二、协程作用域构建器 ( runBlocking 函数 | coroutineScope 函数 )二、协程作用域构建器 ( coroutineScope 函数 | supervisorScope 函数 )1、协程作用域构建器概念2、coroutineScope 协程作用域构建器 示例3、supervisorScope 协程作用域构建器 示例原创 2022-11-28 16:09:53 · 1687 阅读 · 0 评论 -
【Kotlin 协程】协程启动 ④ ( 协程启动模式 | 协程构建器启动模式参数 | DEFAULT 模式 | ATOMIC 模式 | LAZY 模式 | UNDISPATCHED 模式 )
一、协程构建器 CoroutineScope.async 函数1、协程构建器 CoroutineScope.async 函数参数分析2、协程构建器 CoroutineScope.async 函数参数原型二、协程启动模式1、DEFAULT 模式2、ATOMIC 模式3、LAZY 模式4、UNDISPATCHED 模式5、CoroutineStart 中定义的协程启动模式原型原创 2022-11-28 13:03:52 · 1687 阅读 · 0 评论 -
【Kotlin 协程】协程启动 ③ ( 协程组合并发 | 挂起函数串行执行 | 协程组合并发执行挂起函数 )
一、挂起函数串行执行、二、协程组合并发执行挂起函数原创 2022-11-28 00:20:27 · 1523 阅读 · 0 评论 -
【Kotlin 协程】协程启动 ② ( 多协程控制 | launch 协程执行顺序控制 | Job#join() 函数 | async 协程执行顺序控制 | Deferred#await() 函数 )
一、launch 协程执行顺序控制、二、async 协程执行顺序控制、三、完整代码原创 2022-11-27 23:15:05 · 2290 阅读 · 0 评论 -
【Kotlin 协程】协程启动 ① ( 协程构建器 | launch 构建器 | async 构建器 | runBlocking 函数 | Deferred 类 )
一、协程构建器、1、协程构建器概念、2、runBlocking 函数、3、launch 构建器示例、4、Deferred 类、5、async 构建器示例、二、协程构建器示例、原创 2022-11-27 21:25:16 · 1368 阅读 · 0 评论 -
【Kotlin 协程】协程底层实现 ④ ( 结构化并发 | viewModelScope 作用域示例 )
一、viewModelScope 作用域作用、二、viewModelScope 作用域示例原创 2022-11-26 23:05:24 · 2615 阅读 · 0 评论 -
【Kotlin 协程】协程底层实现 ③ ( 结构化并发 | MainScope 作用域 | 取消协程作用域 | Activity 实现 CoroutineScope 协程作用域接口 )
一、MainScope 协程作用域二、取消 MainScope 协程作用域三、Activity 实现 CoroutineScope 协程作用域接口原创 2022-11-26 19:29:58 · 2237 阅读 · 0 评论 -
【Kotlin 协程】协程底层实现 ② ( 协程调度器 | 协程任务泄漏 | 结构化并发 )
一、协程调度器、二、协程任务泄漏、三、结构化并发原创 2022-11-26 00:35:45 · 1511 阅读 · 0 评论