首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Channel
南北是北北
创建于2025-08-25
订阅专栏
Kotlin Channel
暂无订阅
共8篇文章
创建于2025-08-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Kotlin Channel 开箱即用
创建 & 容量/溢出 RENDEZVOUS(0) :无缓冲,强背压;BUFFERED:小缓冲常用;UNLIMITED:慎用,易 OOM;CONFLATED:只保最新。 选型:必达→SUSPEND;只要
Channel取消、关闭、异常与资源管理
1) 概念对照:cancel vs close 操作 作用对象 行为 队列里已有元素 典型用途 close(cause: Throwable? = null) Channel 本身(发送端关闭) 标记
Channel ↔ Flow/SharedFlow 互通与取舍
0) 心智模型速记 Channel:热的、点对点队列(单播)。有容量与溢出策略(SUSPEND/DROP_*),可 close/cancel,适合工作队列/管线/Actor。 Flow:冷的按需序列(
Channel 的时间相关与选择器:delay、withTimeout/withTimeoutOrNull、ticker
1)delay(ms):可取消的“睡眠”,不阻塞线程 作用:让当前协程挂起 ms 毫秒,不占用底层线程(调度器会在到时后恢复协程)。 可取消:期间如协程被取消,delay 会立刻结束并抛 Cancel
Channel 的 4 类常用并发/架构模式讲透:管线(pipeline)、扇入(fan-in)、扇出(fan-out)、Actor(消息驱动)
一些通用基石(先记住) 容量×策略:Channel(capacity = N, onBufferOverflow = SUSPEND | DROP_OLDEST | DROP_LATEST) “必达”
详解channel容量、背压与溢出策略
心智模型:容量=“桶”,策略=“满了怎么办” 容量(capacity)决定队列能“暂存”多少元素; 背压由 send 是否会挂起 决定; 溢出策略决定“满桶时是挂起还是丢弃哪一个(最老/最新)”; C
如何理解Channel中协程之间点对点消息 + 明确背压/容量控制
1) Channel 是什么:一对一“邮筒” 点对点:Channel 天然适合 1 生产者 ↔ 1 消费者。也支持多生产/多消费,但不保证公平/顺序(不要依赖)。 冷 vs 热:Channel 是热消
详解Channel核心类型:Channel<T>, SendChannel<T>, ReceiveChannel<T>
1. 三类接口的职责与关系 类型 职责 方向 典型场景 SendChannel 只负责发送 send(T) ➜ 通道 把“写端”暴露给调用方(不让它读) ReceiveChannel 只负责接收 通道