首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

消息队列中的数据被一个进程读取后,另一个进程还能读取吗?解决思路

2012-05-28 
消息队列中的数据被一个进程读取后,另一个进程还能读取吗?有一个消息队列,若干个进程对它进行读取。每个进

消息队列中的数据被一个进程读取后,另一个进程还能读取吗?
有一个消息队列,若干个进程对它进行读取。每个进程只要消息队列中特定类型的消息。
例如,进程1读取消息队列中的消息,msg1不符合,msg2符合,则进程1读取msg2,然后进程1sleep。
现在进程2开始读取消息队列,如何做到进程2先读取msg1并做判断,然后读取msg3并做判断??

[解决办法]
进程调度你不能控制,建议你对队列synchronize,然后设置一个bool标志位用来判断是否其他进程可读
[解决办法]
既然是队列,那只能先进先出了,肯定不能第一个不行又去读第二个


可以单独建个线程或进程管理消息队列,每次读队列头的消息


消息属于哪个进程就发个那个进程
[解决办法]
队头不取出来怎么去访问队列中间的数据呢?
这样的话可以做个分发消息的进程P1,然后在每个进程Pi里另外维护个队列
判断在P1内做,然后根据不同的条件将消息插到Pi的消息队列内
Pi就只需要取消息,然后进行处理就可以了
[解决办法]
我觉得不可以吧。
但是可以给个观察者模式样子的,一个消息到来它应该要知道该是谁接收的啊!如果消息定义得好的话就应该没问题吧。

热点排行