存档

2010年4月 的存档

ACE 模式

2010年4月14日 1 条评论

ACE 框架引入了众多设计模式, 要深入理解 ACE, 需要对 ACE 模式有更多了解. ACE 模式大体可分为四大类:

  • Wrapper Facade (包装外观)
  • Component Configurator (组件配置器)
  • Interceptor (拦截器)
  • Extension Interface (扩展接口)
2. Event Handling Patterns
  • Reactor (反应堆) : 同步式I/O, 处理”和应用相关” 的处理程序(handler)的多路分离和分发, 以响应各种基于 I/O, 计时器, 信号和同步的事件.
  • Proactor (前摄器) : 异步式I/O, 处理”和应用相关” 的处理程序(handler)的多路分离和分发, 以响应各种基于 I/O, 计时器, 信号和同步的事件.
  • Asynchronous Completion Token (异步完成令牌)
  • Acceptor-Connector (接受器-连接器) : 这个模式将 “主动和被动初始化角色”  同 “初始化结束后, 通信对等服务所执行的应用处理”  分离开来.
3. Synchronization Patterns
  • Scoped Locking (区域锁) : 确保当控制进入到某一个范围时,自动获得锁,当控制离开该范围时,自动释放锁.
  • Strategized Locking (策略锁) : 把同步机制参数化,保护组件的临界区免受并发访问.
  • Thread-Safe Interface (线程安全接口) : 将加锁开销减至最少,并保证组件间的方法调用不会因为想再次获得一个已被组件拥有的锁而导致的“自死锁”.
  • Double-Checked Locking Optimization (双重检查加锁优化) : 如果代码的临界区必须在程序执行内只以线程安全的方式获得一次锁时,该模式能够减少争用和同步开销.
4. Concurrency Patterns
  • Active Object (主动对象) : 将方法执行和方法调用分离, 加强并发和简化对驻留在自身控制线程中对象的同步访问. 它给线程间的协作处理提供了基于对象的解决方案.(6个参与者)
  • Monitor Object (监视器对象) : 使并发访问的执行同步化,以确保任一时刻仅有一个方法在对象内运行. 它也允许对象方法相互协调,调度方法的执行顺序. 也叫线程安全的被动对象. (4个参与者)
  • Half-Sync/Half-Async (半同步/半异步) : 将并发系统中异步和同步服务处理分离,简化了编程,同时又没有降低性能. 有两个通信层,一个用于异步服务处理,一个用于同步服务处理.
  • Leader/Followers (领导者/追随者) : 为了检测、多路分解、分发和处理事件源上引发的服务请求,多线程轮流共享一个事件源集合.
  • Thread-Specific Storage (线程专有存储) : 允许多个线程使用一个“逻辑上全局”的访问点获得一个局限于某一线程的对象,而不会导致对象访问中的加锁开销.

分类: ACE,TAO,CIAO,DDS 标签: ,