找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4765|回复: 3

ACE_Message_Queue的同步

[复制链接]
发表于 2008-5-21 23:37:10 | 显示全部楼层 |阅读模式
自己写了一个缓冲类,有一个ACE_Message_Queue<ACE_MT_SYNCH>类型的成员,在一个线程enqueue另一个线程dequeue(阻塞调用),现在的问题是,当enqueue成功返回后,dequeue操作有时候仍然会被阻塞,工作不是很稳定,在文档中ACE_Message_Queue的部分找到关于notify()方法的说明:In a multi-threaded application with concurrent consumers, there is no guarantee that the queue will be still be non-empty by the time the notification occurs.
请教这个问题怎么解决比较好呢?
 楼主| 发表于 2008-5-21 23:37:17 | 显示全部楼层
不应该啊。你的自己的缓冲类怎么写的?帖上来。
其实ACE_Task有足够了,一般不用自己写。
 楼主| 发表于 2008-5-21 23:37:28 | 显示全部楼层
今天发现另一个问题,修改以后,现在工作得很好。因为我刚开始做的时候只知道ACE_Task_Base,不知道ACE_Task。。。不过,就我的需要来说,自己添加一个ACE_Message_Queue也能用了。
 楼主| 发表于 2008-5-21 23:37:37 | 显示全部楼层
>不过,就我的需要来说,自己添加一个ACE_Message_Queue也能用了。

是的,有的场合需要有两个message queue, 此时ACE_Task就不够用了,需要再声明一个message queue成员变量
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-9 22:10 , Processed in 0.015076 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表