首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
第108篇 Channel 与 select:协程间通信
📅 2026/10/8 1:44:21
✍️ 爱科研究院
👁 阅读 3,247
上一节讲协程与线程的性能差别,这一节讲协程之间怎么传数据。Channel是协程世界里最基础的原语之一——比 Flow 更底层、比回调更结构化。面试里问它的追问往往很刁:Channel 和 Flow 到底什么关系、send满了会怎样、select解决了什么问题、什么时候该用Channel而不是Flow。这一节把这些一次讲清。先把结论放在前面:Channel是"点对点的消息通道",Flow是"面向流的序列"。Channel 有明确的容量(capacity)与缓冲策略(onBufferOverflow),满了会挂起发送方或丢弃;Flow 没有容量概念,靠emit的挂起实现背压。select解决的是"同时等多个通道,谁先来就走谁"这类多路等待问题。判据是:需要在"生产者-消费者"之间传递离散事件、或者要在多个来源之间竞争,就用 Channel;需要在"上游-下游"之间处理连续数据流,就用 Flow。机制背后的执行路径Channel 的类型要分清,这是高频考点:// RENDEZVOUS:零容量,发不出去的 send 直接挂起直到有人接 val a = ChannelString(Channel.RENDEZVOUS) // BUFFERED:默认容量 64(可通过 Cha
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/8 1:44:21
第107篇 协程与线程性能对比:为什么更轻
2026/10/8 1:39:21
Midway Koa Web 框架演进全解析:从 CHANGELOG 到 @midwayjs/koa 源码实现
2026/10/8 1:39:21
TIL 实战:PostgreSQL TRUNCATE 清空表后如何让自增序列自动归零(RESTART IDENTITY)
2026/10/8 2:34:25
深入浅出XSS:原理、分类、挖掘与防御实战指南
2026/10/8 2:34:25
计算机网络基础不白学:用抓包和TCP状态机搞定网络排错
2026/10/8 2:34:25
Java SSM+Django在线视频网站开发:编码选型与转码链路全解析
2026/10/8 2:34:25
模板代码调试全攻略:从IDEA Live Templates到格式化模板实战
2026/10/8 2:34:25
USB Audio + CDC 复合设备驱动开发实战:描述符组织、端点分配与避坑指南
2026/10/8 2:29:24
Flutter鸿蒙适配实战:marker富文本库迁移指南
2026/10/8 0:04:11
Agent Skills 完全指南:原理、写法、安装与实战避坑
2026/10/8 0:04:11
Agent Skills 实战:从 Genkit 定义到 GKE 部署与排查
2026/10/8 0:04:11
Agent Skills 实战:从设计到调试的完整指南
2026/10/6 15:41:36
Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化
2026/10/7 9:55:49
多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系
2026/10/7 14:02:03
hindsight:面向LLM应用的事后可观测性工程实践
2026/10/6 21:51:29
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/6 22:05:33
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/6 22:06:19
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)