当前位置: 技术问答>linux和unix
关于消息队列的问题
来源: 互联网 发布时间:2016-01-21
本文导语: 建立一个消息队列后,里面是空的吗? 我有两个进程,一个是 for {....... ....... msgsnd msgrcv} 另一个是 for {msgrcv ...... ...... msgsnd} 其中一个发1号消息,收2号消息 另一个收2号消息,发1号消息,都是设置成没收到规定消息时阻塞 ...
建立一个消息队列后,里面是空的吗?
我有两个进程,一个是
for
{.......
.......
msgsnd
msgrcv}
另一个是
for
{msgrcv
......
......
msgsnd}
其中一个发1号消息,收2号消息
另一个收2号消息,发1号消息,都是设置成没收到规定消息时阻塞
按道理说应该能保证两个进程的循环语句同步执行吧
结果我执行时先是第二个进程接收到一个消息,返回了一个正值,这是为什么?消息队列刚建立就能收到消息?
我有两个进程,一个是
for
{.......
.......
msgsnd
msgrcv}
另一个是
for
{msgrcv
......
......
msgsnd}
其中一个发1号消息,收2号消息
另一个收2号消息,发1号消息,都是设置成没收到规定消息时阻塞
按道理说应该能保证两个进程的循环语句同步执行吧
结果我执行时先是第二个进程接收到一个消息,返回了一个正值,这是为什么?消息队列刚建立就能收到消息?
|
其中一个发1号消息,收2号消息
另一个收2号消息,发1号消息,都是设置成没收到规定消息时阻塞
是:
“另一个收1号消息,发2号消息”吧?
另一个收2号消息,发1号消息,都是设置成没收到规定消息时阻塞
是:
“另一个收1号消息,发2号消息”吧?
|
建议建立2个消息队列,一个收,一个发,这样系统结构清晰,也好控制
|
个人感觉异步就建两个队列吧, 同步就建一个.
|
好像容易造成死锁情况