# 并发架构

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

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

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

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