ACE期货类ACE_Future返回异步调用结果原理解析
来源:互联网 发布:内外网转换软件 编辑:程序博客网 时间:2024/05/16 17:37
ACE_Future<u_long> result = asynch_fun();
在阅读主动对象模式示例代码时,看到ACE_Future类。异步调用直接返回ACE_Future对象。当异步调用完成时,返回的ACE_Future对象,将设置返回值。此时使用ACE_Future的方法ACE_Future<T>::ready (void)将返回1。本文将探讨ACE_Future期货类是如何在异步调用完成后设置返回的ACE_Future类对象的值的。
ACE_Future是模板类:
template <class T>class ACE_Future;
其中class T为返回值类型。
类ACE_Future中保存一个ACE_Future_Rep<T>类的指针,ACE_Future_Rep<T>类为实际保存返回值的类。类ACE_Future被构造时,在堆上分配一个ACE_Future_Rep<T>类实例。异步函数在栈中分配ACE_Future类实例,但其保存堆上的一个ACE_Future_Rep<T>指针。ACE_Future类实例按值返回,此值赋给调用异步函数的函数中声明的变量。ACE_Future类重载了operator=,使得在赋值时,右值的ACE_Future_Rep<T>类实例引用计数加1,并将此指针赋给左值的相应指针,左值中原有的指针引用计数减1(如果引用计数减为0,则释放老指针指向的堆空间)。另外在异步方法中,将要传递的ACE_Future类实例的引用传递给了方法对象,方法对象完成任务后可已修改ACE_Future中的ACE_Future_Rep<T>值,此时即可将异步调用结果传递给发起异步调用的函数。
- ACE期货类ACE_Future返回异步调用结果原理解析
- ACE_Future实现了单写多读模式,可以用来异步方法调用的结果返回
- ACE_Future实现了单写多读模式,可以用来异步方法调用的结果返回
- ace-ACE_Future
- .net 异步调用webservice 并取得Webservice返回结果
- 二把刀:异步调用web service并返回结果
- 解决jQuery循环调用ajax,异步返回结果混乱
- Direct3D Draw函数 异步调用原理解析
- Direct3D Draw函数 异步调用原理解析
- 如何通过SAXParser类解析调用 Google Weather API接口返回的XML结果
- mybatis 结果返回原理
- 调用通讯录返回结果
- 调用Activity返回结果
- 异步调用同步返回
- 远端异步调用事件结果
- 异步调用的原理
- 调用系统通讯录,返回结果
- Jquery异步提交返回json结果问题
- 只解压一个tar.gz文件中的部分文件
- Win32 网络编程
- 数据库导入导出-bcp
- Python学习总结,未完成,不断更新
- JSC销售Prc。
- ACE期货类ACE_Future返回异步调用结果原理解析
- 网站架构
- 三十分钟掌握STL
- C# 之 类复制 MemberwiseClone与Clone(深 浅 Clone)
- 求最大公约数
- 天津软件沙龙 发展
- LIS算法的时空复杂度
- linux中shell编程: 使用pgrep指令判断进程是否存在
- 带时间的JavaScript日期控件(很棒)