管道和消息队列之间有什么区别?
请从vxworks& unix观点。
我认为管道是单向的,但消息队列不是。
但是管道内部不使用消息队列,那么管道是如何单向但消息队列不是?
您可以想到的其他差异(来自设计或使用或其他方面)?
答案 0 :(得分:15)
消息队列是:
管道
这就是我现在能想到的。
答案 1 :(得分:1)
“VxWorks管道与UNIX管道显着不同”,vxWorks文档说,他们不是在开玩笑。 Here's the manpages
看来,Unix管道和vxWorks管道之间的唯一相似之处在于它们是IPC的一种形式,这似乎并不夸张。功能不同,API不同,实现肯定非常不同。
答案 2 :(得分:0)
我也在IPC in UNIX中发现了这种差异。它指出它们之间的区别在于消息队列和管道是第一个在数据包中存储/检索信息。虽然管道是按字符进行的。
消息队列:
消息队列:类似于管道的匿名数据流,但存储 并以数据包的形式检索信息。
管
管道:通过标准输入和接口连接的双向数据流 输出并逐字符读取
我在这里也发现了这个问题:Pipe vs msg queue
答案 3 :(得分:0)
消息队列和管道的比较: - 可以使用一个消息队列在两个方向上传递数据 - 无需先按先进先出的原则阅读该消息 但可以选择性地处理 来源:见http://www.cs.vsb.cz/grygarek/dosys/IPC.txt
答案 4 :(得分:-1)
MQ具有内核持久性,可以由多个进程打开。