背景
推荐算法的同事交接了部分算法的项目给我。
该部分业务的流程类似如下逻辑:
本来的实现是:
发现可以采用这个模式进行处理,提升性能。
Q:什么业务可以 fan out and fan in(merge)
FAN-IN和FAN-OUT模式
// 附录2 FAN-OUT模式:多个goroutine从同一个通道读取数据,直到该通道关闭。OUT是一种张开的模式,所以又被称为扇出,可以用来分发任务。
FAN-IN模式:1个goroutine从多个通道读取数据,直到这些通道关闭。IN是一种收敛的模式,所以又被称为扇入,用来收集处理的结果。
FAN模式一定能提升性能吗?
流式计算与批量计算
// 附录3
附录
1.GO编程模式:PIPELINE 2.Golang并发模型:流水线模型 3.流式计算与批量计算
原创文章转载请注明出处: GO编程模式PIPELINE (Golang并发模型:流水线模型)