主动模式
来源:互联网 发布:图像数据库 编辑:程序博客网 时间:2024/04/30 21:55
主动对象模式是什么?
--> ACE_Activation_Queue
里面放入的是ACE_Method_Object,
主动对象会去监视ACE_Activation_Queue是否包含记录,如果有就调用方法对象的call方法。每个方法对象中会包含一个它要回调的主动对象指针。
使用主动对象的好处是使得程序是发生在调用端而不是主调端执行,这样主线程就无须等待,这对于如I/0设备的读写缓慢的使用主动对象就比较合适。
主动对象常常要使用command和proxy模式。
--command模式就是一个方法对应一个对象;通常会有一个抽象类以方便给每一个对象提供一个统一的接口。
--proxy:经由command提供的接口来保证查询到真正的对象。
实现步骤:
ACE_Task 用于主动对象,ACE_Task是一个模版类,模版参数用来指定线程是否同步或不同步.ACE_Task有点类似于windows消息.
ACE_Message_Block* MSG结构
ACE_Task::putq SendMessage();
ACE_Task::getq GetMessage();
首先每一个任务[线程]需要继承ACE_Task;然后实现open, close, svc方法;
通常调用open来激活线程:调用activate方法。
调用close以终止执行。
调用svc来实现线程的运转好比线程执行函数。--如果ACE_Activation_Queue队列中存有记录,就从队列取出方法对象,并调用方法对象的call()方法,通过call方法来回调主动对象。
为每一个方法继承ACE_Method_Object;并实现call方法:
如果需要方法对象调用返回的结果就需要使用ace_future将结果保存,这样每一个方法对象都有一个期货对象;客户用ready方法来检查是否将结果放置与ace_future期货对象中。
主动对象模式在c830项目的planAgent中被使用到。
- 主动模式
- 主动对象模式
- ACE主动对象模式
- F# 中的主动模式
- ACE主动对象模式
- ACE主动对象模式
- ACE主动对象模式
- IPSEC主动模式
- ACE主动对象模式
- 主动器模式
- ftp主动被动模式
- ACE主动对象模式(1)
- ACE主动对象模式(2)
- ACE主动对象模式(1)
- ACE主动对象模式(2)
- ACE主动对象模式(1)
- ACE主动对象模式(2)
- FTP 主动、被动工作模式
- 各种工具之正则表达式语法比较
- 新加坡再保险前高管职场经验谈
- 当生活中的不确定感向你袭来……
- magento模块 -- 开发magento下IPS支付模块
- 经济衰退时期的加薪技巧
- 主动模式
- how to convert a virutal address to physical address in Solaris driver
- 选用ibatis和hibernate的区别
- JNI 简单例子
- 为何睡眠让你疲倦
- panic or panick?
- 如何挑选完美的白衬衫
- 大摩基金首席策略师:经济即将强劲反弹
- BoundCheck5.02注册问题