知识卡片
屏障汇聚结果
内容
屏障模式让多个并发任务在结果齐备前阻塞,适合“必须等多个服务返回后才能继续”的聚合场景。它的边界是最慢任务决定整体延迟,错误处理也要统一收口。如果不需要立刻阻塞等待,可以换成 [[Future解耦等待]]。
参考来源
- 位置:《Go语言高级开发与实战》第4章《Go语言并发编程》(源文件:_epub-src/GoYu Yan Gao Ji Kai Fa Yu Shi Zhan_split_037.html)
- 结论依据:原文定义屏障用于阻塞 goroutine 直到聚合所有返回结果,并举微服务结果归并例子,因此支撑该模式用途。
- 原始内容:计都依赖于通道。 4.4.1 屏障模式 屏障模式(Barrier Mode)顾名思义就是一种屏障,用来阻塞goroutine直到聚合所有goroutine返回结果,可以使用通道来实现。该模式在并发应用中非常常见。例如:有一个微服务应用中的某个服务需要通过归并组合另外3个微服务返回的结果作为当前这个服务的结果。 屏障模式通过同步阻塞来实现屏障操作,直到组成该返回结果所依赖的其他一个或多个不同协程或者线程(微服务)的结果都被得到