ACE编程
文章平均质量分 79
zhenjiangge
活泼开朗
展开
-
关于ACE_InputCDR和ACE_OutputCDR读写数据时的经验
我今天测试发现ACE_InputCDR和ACE_OutputCDR并不是那么简单。如果稍微不注意就会出现一些奇怪的字节错位的情况。在这里我总结一下使用的规则: ACE_OutputCDR out(mb); out 例一: 如果out 了一个short再out一个long转载 2010-01-14 22:03:00 · 426 阅读 · 0 评论 -
ACE_InputCDR和ACE_OutputCDR
我今天测试发现ACE_InputCDR和ACE_OutputCDR并不是那么简单。如果稍微不注意就会出现一些奇怪的字节错位的情况。 在这里我总结一下使用的规则: ACE_OutputCDR out(mb); out 例一: 如果out 了一个short再out一个long转载 2010-01-14 22:16:00 · 663 阅读 · 0 评论 -
ACE_Message_Block小知识
每个ACE_Message_Block都有两个底层指针:rd_prt,wr_ptr,用于在消息块中读写数据。可以通过rd_ptr()和wr_ptr()方法来直接访问。 rd_ptr指向下一次读取数据的位置,wr_ptr指向下一次写入数据的位置。这两个指针不会自动更新,程序员必须自己来增加他们的值!!! 拷贝函数 int copy(const char *buf,size_t n);转载 2010-01-14 22:17:00 · 1654 阅读 · 0 评论 -
C++实现的带最大最小线程数的线程池(基于ACE)
最近需要一个能根据请求数变化的线程池,JAVA有这样的东西,可是C++下好像一般只是固定大小的线程池。所以就基于ACE写了个,只做了初步测试。主要思想是:1. 重载ACE_Task,这相当于是个固定线程池,用一个信号量(ACE_Thread_Semaphore)来记数空闲线程数。2. 初始化时根据用户的输入,确定最少线程数minnum和最大线程数maxnum,当多个请求到来,并且无空闲转载 2010-01-03 13:06:00 · 1542 阅读 · 0 评论 -
任务和主动对象(Active Object):并发编程模式
这一章介绍前面提到过的ACE_Task类,另外还介绍了主动对象模式。基本上这一章将涵盖两个主题。首先,它将讲述怎样将ACE_Task构造作为高级面向对象机制使用,用以编写多线程程序。其次,它将讨论怎样在主动对象模式[II]中使用ACE_Task。 那么到底什么是主动对象呢?传统上,所有的对象都是被动的代码段,对象中的代码是在对它发出方法调用的线程中执行的。也就是,调用转载 2010-01-03 13:10:00 · 1225 阅读 · 0 评论 -
使用 ACE 库框架在 UNIX 中开发高性能并发应用
使用 ACE 库框架在 UNIX 中开发高性能并发应用ACE 开放源码工具包可以帮助开发人员创建健壮的可移植多线程应用程序。本文讨论创建使用 ACE 线程的应用程序的一些方法。Adaptive Communication Environment (ACE) 是一个高性能、开放源码、面向对象的框架和 C++ 类库,它有助于简化网络应用程序的开发。ACE 工具包包括一个操作系统层和一个封装转载 2010-01-14 21:39:00 · 511 阅读 · 0 评论 -
如何用ace_message_block发送和接收struct结构的数据
主要是拼数据,一次读一个STRUCT内容,读几次,然后拼在一块,在然后进行后面的处理,看看ACE的例子void AIO_Input_Handler::handle_read_stream (const ACE_Asynch_Read_Stream::Result &result) { if (!result.success () || result.bytes_transfer原创 2010-01-14 22:23:00 · 1804 阅读 · 0 评论