管道和消息队列之间有什么区别?管道和消息队列之间有什么区别?
请解释从vxworks & unix的角度。
我认为管道是单向的,但消息队列不是。
但是不要管道内部使用消息队列,那么管道是如何单向的,但消息队列不是?
你能想到的其他区别是什么(从设计或使用或其他角度)?
管道和消息队列之间有什么区别?管道和消息队列之间有什么区别?
请解释从vxworks & unix的角度。
我认为管道是单向的,但消息队列不是。
但是不要管道内部使用消息队列,那么管道是如何单向的,但消息队列不是?
你能想到的其他区别是什么(从设计或使用或其他角度)?
消息队列是:
管道
这就是我现在能想到的。
什么是'pend'? – 2010-03-19 01:46:02
任务处于挂起状态,这意味着它正在等待发生某种事情:在这种情况下,队列中有东西(读取时)或有一个空插槽(写入时)。 – Benoit 2010-03-22 13:53:42
“VxWorks管道与UNIX管道有很大不同”,vxWorks文档说,他们不是在开玩笑。 Here's the manpages。
看起来好像并不夸张地说,Unix管道和vxWorks管道之间的唯一相似之处在于它们是IPC的一种形式。功能不同,API不同,实现方式肯定有很大不同。
我还在IPC in UNIX中发现了这种差异。它指出它们之间的区别在于消息队列和管道是第一个存储/检索信息包中的信息。虽然管道按字符逐个进行。
消息队列:
消息队列:一个匿名数据流类似于管,但存储 并检索在报文信息。
管
管:双向数据流通过标准输入和 输出接口,并通过文字
我也发现了这个问题,在这里读到字符:Pipe vs msg queue
消息队列和管道的比较: - 可以使用一个消息队列直接传递数据离子 - 消息不一定要对先入先出的原则 读出,但可以有选择地处理,而不是 来源:看http://www.cs.vsb.cz/grygarek/dosys/IPC.txt
我想一般他们是同样的事情。消息队列倾向于确保数据到达收件人。所以他们可以坚持数据,直到收件人变得可用,但我想这不是强制性的,并且依赖于实现,就像单向/双向或持久/单消息管道等一样。管道用于发送字符串块和二进制数据,而队列用于发送消息,但同样,这可能取决于实现。如果我们在谈论消息传递,人们喜欢重新发明轮子。有些术语有5个以上的不同名称... – inf3rno 2015-09-28 06:47:29