协程进阶:通道 03. 生产者构建器 (produce)

本篇解析 example-channel-03.kt。学习一种更简便的通道创建方式。

1. 核心构建器:produce

produce 是一个协程构建器,它会启动一个新的协程并返回一个 ReceiveChannel

优点:

  • 封装性:它将“启动协程”与“发送逻辑”封装在一起。
  • 自动关闭:当 produce 块内的代码执行完毕后,它会**自动调用 close()**。

2. 核心操作:consumeEach

consumeEach 是一个扩展函数,用于替代传统的 for 循环。

  • 安全消费:它保证了在消费完数据后,不论成功还是异常,都会自动处理资源释放。

3. 开发者感悟

produce 是处理异步流的工业级选择。它就像是协程里的“工厂”,源源不断地生产零件并直接交付给消费者,且自带“完工关机”功能,极大减少了由于忘记关闭 Channel 导致的资源泄漏。

,