知识卡片
并发问题的架构级托举案例
内容
电子邮件分类系统用管道-过滤器风格实现,把”并发安全”一次性托举到基础设施层:抽象Filter类规定每个过滤器运行在自己线程里、只能通过线程安全的Pipe类增量收发消息,具体过滤器只需继承Filter、实现work()方法,完全不用操心并发。这是”提升架构的设计”在并发场景的落地——比每个过滤器各自处理、寄望”处处一致”可靠得多:线程数量增长时,担忧不会跟着蔓延,因为约束已把混乱摁住了。
参考来源
- 位置:《恰如其分的软件架构》第10章《代码模型》10.8节《电子邮件处理系统预演》(源文件:_epub-src/OEBPS/text00103.html)
- 结论依据:原文描述Filter/Pipe基类把并发处理托举到基础包,过滤器只需继承并实现work()方法而无需关心并发,说明这是以架构为中心解决并发问题而非局部处理,"过滤器只能经由线程安全的管道进行交互"使担忧不会随线程数增长而蔓延。
- 原始内容:Filter类作为超类,会做一些架构托举……每一个过滤器都运行在自己的线程中,增量式地处理输入……这里的方案是:过滤器只能经由线程安全的管道进行交互。这样,当线程的数量增长时,你的担心就不会蔓延。