管道和消息隊列之間有什麼區別?管道和消息隊列之間有什麼區別?
請解釋從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