2013-02-27 32 views
6

在使用POSIX消息隊列時,我注意到在文件系統上創建了一些正在創建隊列的名稱的文件。我的問題:消息隊列內容存儲在哪裏?

Q1。消息隊列是排隊硬盤上的消息而不是RAM嗎? Q2302。如果是這樣,它應該不是執行非常緩慢,因爲它涉及HardDisk?


編輯:

在Linux上,POSIX消息隊列在虛擬 文件系統的i-node,和消息隊列描述符實現:

我在書中The Linux Programming Interface閱讀本並且打開消息隊列 分別將描述實現爲文件描述符和打開文件 描述。但是,這些是SUS35不需要的實現細節 ,並且在某些其他的UNIX 實現中不適用。

即使它是VFS,它仍然存儲在HardDisk上,對吧?

有了這些信息,現在有人可以對第二個問題發表評論嗎? (和/或第一個也是,如果有更多的東西來補充)

+0

我認爲它只存儲在RAM中,而不是存儲在硬盤上。 它與RAM磁盤類似,因此您可以像訪問文件系統那樣訪問它,但它不存在於硬盤上。 – Johnlcf 2013-11-20 09:22:28

回答

4

下面鏈接可查看關於第一個問題 http://man7.org/linux/man-pages/man7/mq_overview.7.html

比較清楚關於第二個問題,當然基於文件的隊列會比基於內存慢一。但是這可能不像一些隨機文件訪問操作那麼慢,因爲它是針對排隊而優化和實現的。

+0

這應該被授予答案 – Mawg 2016-05-30 11:56:08