ACE_Message_Queue

本文介绍了ACE框架中的消息队列ACE_Message_Queue,它不同于System V的消息队列模型,主要用于线程间通信。文章讲解了基于traits策略的类设计,如ACE_MT_SYNCH和ACE_NULL_SYNCH,以及消息块ACE_Message_Block的使用,包括数据缓存、引用计数和消息类型的设置。此外,还提供了一个简单的ACE_Message_Block使用示例。
摘要由CSDN通过智能技术生成
1.与System V的消息队列模型不同
 
ACE_Message_Queue的模型是仿照System V streams提供的排队设施设计的,但是与System V排队设施不同,使用ACE的排队设施,可以在单个进程中进行高效的线程间通信,但是没有提供用于进程间通信的排队设施。
 
 
2.基于traits策略的类的设计
 
为了实现线程安全,经常要实现多种版本的库,多线程库、单线程库,这样会给库的维护与开发带来很多问题,而在ACE中经常看到ACE_<ACE_XXX>这种用法,ACE_XXX类代表的是一系列的宏定义,这些宏决定了使用哪种策略。例如消息队列的使用要public ACE_Task<ACE_MT_SYNCH>而参数ACE_MT_SYNCH的定义如下:
class ACE_Export ACE_MT_SYNCH
{
public:
  typedef ACE_Thread_Mutex MUTEX;
  typedef ACE_Null_Mutex NULL_MUTEX;
  typedef ACE_Process_Mutex PROCESS_MUTEX;
  typedef ACE_Recursive_Thread_Mutex RECURSIVE_MUTEX;
  typedef ACE_RW_Thread_Mutex RW_MUTEX;
  typedef ACE_Condition_Thread_Mutex CONDITION;
  typedef ACE_Condition_Recursive_Thread_Mutex RECURSIVE_CONDITION;
  typedef ACE_Thread_Semaphore SEMAPHORE;
  typedef ACE_Nul
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值