并发架构

本章介绍三种经典架构模式,在《面向模式的软件体系结构:并发和网络对象的模式》中都有很好的解释。本章会简单概述一下活动对象、监控对象和半同步/半异步模式。在同步模式中,我会使用C++作为第一视角。在深入研究这三种模式之前,先做对这几个模式进行简单的介绍。

  • 活动对象的设计模式将执行与调用进行解耦,每个对象会留在自己的控制线程中,其目标是通过使用异步方法和调度器来引入并发。维基百科:Active object
  • 监控对象的设计模式,会同步并发方法的执行,以确保对象每次只运行一个成员函数。并且,还允许对象的成员函数协同调度序列的执行。

这两种模式可以以同步和调度的方式运行。主要的区别是,活动对象在不同的线程中执行,而监控对象与客户端则是在相同的线程中执行。与关注子系统的活动对象和监控对象(因此通常称为设计模式)不同,以下的体系结构模式具有系统视角。

  • 半同步/半异步体系结构模式,在并发系统中对异步和同步服务处理进行解耦,从而在不降低太多性能的情况下简化编程。该模式引入了两个通信层,一个用于异步,另一个用于同步。