当前位置: 技术问答>linux和unix
关于消息队列
来源: 互联网 发布时间:2016-03-30
本文导语: system V 的消息队列,一个进程发送msgsnd, 五个进程接收msgrcv,接收不出错不退出for循环,就是接收不止一次, 发现 是五个进程轮流接收消息,这是内核优化过的还是其它原因 ?为什么不是 五个进程都收到同样...
system V 的消息队列,一个进程发送msgsnd, 五个进程接收msgrcv,接收不出错不退出for循环,就是接收不止一次, 发现 是五个进程轮流接收消息,这是内核优化过的还是其它原因 ?为什么不是 五个进程都收到同样的消息或其中一个进程收完所有消息 ?
|
>>>如果5个进程接收的都是同样的消息类型,那么5个进程肯定是接收的同样的消息,这5个进程间是相互竞争的来读取消息的,所以并不一定是轮流着接收消息的。
|
和实现有关吧,如果消息队列的实现对recvmsg的进程排队的话,确实会轮流接收的。