ACE框架学习总结_特性篇
ACE是一个很著名的网络服务开发框架,最近学习它,发现里面有一些框架特有的概念,下面我就对这些概念的理解做一下总结。
1、网络接口的C++包装
通过给网络编程API进行外观模式的封装,向用户提供简单的网络接口对象,简化用户编程。
2、OS并发机制的OO封装
封装了操作系统的锁对象,并且通过智能指针把锁对象封装起来,以实现在函数任意地方退出时的锁对象自动释放。
3、线程专有存储
封装了linux系统的线程专有存储机制,通过一个代理模板类来实现对线程专有存储机制的封装,并通过操作->重载来访问实际的对象。
4、主动对象
调用和实现分离在不同线程中,调用者通过接口把方法专成请求发送到实现者队列里,实现者从队列里取出消息从而执行方法,有利于多个调用者并发的调用实现者的方法。
5、反应器(Reactor)模式
通过注册不同的事件及其处理对象到反应器,反应器统一检测这些事件并在事件发生时调用相应的时间处理对象,实现了事件监测和处理机制的复用。可以为多线程,且采用非阻塞IO调用模式。
6、前摄器(Proactor)模式
封装linux系统的异步IO机制,启动异步IO操作时把结果处理函数也注册上去,当系统返回操作结果时调用之前注册的结果处理函数来进行结果处理。一般可为单线程或者多线程,且采用异步调用模式。
7、接受器-连接器(Acceptor-Connector)
封装了linux系统TCP通信的客户端和服务器角色模型,底层可以使用反应器模式来驱动各种事件处理,简化用户编程。
8、服务配置器模式(Service Configurator)
将服务的启动终止等服务控制与服务实现分离开来,提供类似linux系统inted的统一服务控制机制。
9、内存管理机制
构造了进程内的动态内存管理以及进程间的共享内存管理通用机制。