管道和消息队列之间有什么区别?
请从 vxworks 和 unix 的角度进行解释。
我认为管道是单向的,但消息队列不是。
但是管道内部不使用消息队列,那么为什么管道是单向的而消息队列不是呢?
您还可以想到哪些其他差异(从设计或使用或其他角度)?
管道和消息队列之间有什么区别?
请从 vxworks 和 unix 的角度进行解释。
我认为管道是单向的,但消息队列不是。
但是管道内部不使用消息队列,那么为什么管道是单向的而消息队列不是呢?
您还可以想到哪些其他差异(从设计或使用或其他角度)?
消息队列是:
管道
这就是我现在能想到的。
我还在UNIX 中发现了 IPC 的这种差异。它指出它们之间的区别在于消息队列和管道是第一个存储/检索数据包中的信息。而管道则逐个字符地进行。
消息队列:
消息队列:类似于管道的匿名数据流,但在数据包中存储和检索信息。
管道
管道:通过标准输入和输出接口的双向数据流,逐个字符读取
我在这里也发现了这个问题:Pipe vs msg queue
“VxWorks 管道与 UNIX 管道有很大不同”,vxWorks 文档说,他们不是在开玩笑。 这是手册页。
似乎毫不夸张地说,Unix 管道和 vxWorks 管道之间的唯一相似之处在于它们是 IPC 的一种形式。功能不同,API 不同,实现肯定也大不相同。
消息队列和管道的比较: - 一个消息队列可用于双向传递数据 - 消息不需要在先进先出的基础上读取,但可以有选择地处理源:见http://www .cs.vsb.cz/grygarek/dosys/IPC.txt
MQ 具有内核持久性,可以被多个进程打开。