lilinfeng124 发表于 2009-12-11 10:55:12

ace的消息队列问题

本人使用了ACE的线程池,用一个MANAGER管理分发MESSAGE_BLOCK,多个worker做分线程负责处理。每个worker去getq取分发给自己的消息包的时候发生了问题,发现处理速度快的时候塞进去一个包,有时候getq取出来好几个重复的包。开始也不相信,现在用自己的代码代替了getq函数,发现问题就解决了。还有ACE下的消息队列也是同样的问题,只要处理速度一快,塞进去一个包,能取出来好几个重复的包!而又莫名其妙丢了不少的包,不知何故,请求高手指点!

modern 发表于 2009-12-11 11:13:45

是否使用锁策略初始化
ACE_Message_Queue<ACE_MT_SYNCH>

winston 发表于 2009-12-11 19:45:03

原帖由 lilinfeng124 于 2009-12-11 10:55 发表 http://www.acejoy.com/bbs/images/common/back.gif
本人使用了ACE的线程池,用一个MANAGER管理分发MESSAGE_BLOCK,多个worker做分线程负责处理。每个worker去getq取分发给自己的消息包的时候发生了问题,发现处理速度快的时候塞进去一个包,有时候getq取出来好几个重复的包。 ...

使用不当,用同步策略,版主已经告诉你了。ACE如果连这点都搞不定,哪里来的声望和用户?工业级质量,不是说着玩的。

lilinfeng124 发表于 2009-12-14 09:48:31

1楼的大哥,我用的就是带锁的那个啊!2楼的大哥,弱弱地问一句,什么叫同步策略啊?版主文章在哪里啊?
页: [1]
查看完整版本: ace的消息队列问题