本篇解析 example-channel-07.kt。学习如何让多个生产者向同一个通道汇总数据。
1. 核心概念:多发一收
扇入模式指:多个生产者并发地向同一个通道发送数据,一个消费者负责统一处理。
特点:
- 并发汇聚:不同来源的数据被汇聚到单一的流中,方便统一管理。
- 天然公平:Channel 的调度保证了每个发送者都有机会把数据塞进通道,不会造成某个发送者长期饥饿。
2. 代码解析
1 | val channel = Channel<String>() |
3. 开发者感悟
扇入模式在 Android 中非常适合处理多源数据汇聚。例如:你的 App 可能同时从网络轮询、本地传感器和 Socket 长连接获取数据。你可以开启 3 个协程作为生产者,它们都把数据塞进同一个 Channel,然后由主界面的 ViewModel 作为消费者进行统一分发和 UI 更新。