日期:2014-05-16  浏览次数:20668 次

关于消息队列的问题
建立一个消息队列后,里面是空的吗?

我有两个进程,一个是
for
{.......
.......
msgsnd
msgrcv}

另一个是
for
{msgrcv
......
......
msgsnd}
其中一个发1号消息,收2号消息
另一个收2号消息,发1号消息,都是设置成没收到规定消息时阻塞

按道理说应该能保证两个进程的循环语句同步执行吧

结果我执行时先是第二个进程接收到一个消息,返回了一个正值,这是为什么?消息队列刚建立就能收到消息?

------解决方案--------------------
其中一个发1号消息,收2号消息
另一个收2号消息,发1号消息,都是设置成没收到规定消息时阻塞

是:
“另一个收1号消息,发2号消息”吧?

------解决方案--------------------
建议建立2个消息队列,一个收,一个发,这样系统结构清晰,也好控制
------解决方案--------------------
个人感觉异步就建两个队列吧, 同步就建一个.
------解决方案--------------------
好像容易造成死锁情况