一种处理 Golang 中链式通道的方法
十一月 7, 2023
当使用通道来串行化任务时,我们因此创建了一个异步流。在异步编程中很容易搞砸,尤其是有额外的要求时,比如超时和取消。 真实世界的例子,是从文件读取器逐行读取数据,然后传递给另一个异步工作的文本解析器。
我找到了一个通用模式,可以用易于理解的代码覆盖大多数这样的场景。
...异步生产者后跟同步消费者。
当使用通道来串行化任务时,我们因此创建了一个异步流。在异步编程中很容易搞砸,尤其是有额外的要求时,比如超时和取消。 真实世界的例子,是从文件读取器逐行读取数据,然后传递给另一个异步工作的文本解析器。
我找到了一个通用模式,可以用易于理解的代码覆盖大多数这样的场景。
...异步生产者后跟同步消费者。
大部分模式都有一个共同点,那就是通过接口连接生产者和消费者。接口的抽象是关键,它反映了对底层类型的深刻理解。知道这一点可以简化事情,无论我们处理的是什么场景,或者使用的是什么语言。
至于为什么现在有这些模式,还有多少尚未被发现,以及背后的数学本质是什么,我也还无法回答。
...