【问题标题】:Where is Message queue content stored?消息队列内容存储在哪里?
【发布时间】:2013-02-13 11:36:56
【问题描述】:

在使用 POSIX 消息队列时,我注意到在文件系统上创建了一些文件,这些文件的名称与我创建队列的名称相同。我的问题:

第一季度。消息队列是否在硬盘而不是 RAM 上排队消息?

第二季度。如果是这样,由于涉及硬盘,执行起来不应该很慢吗?


编辑:

我在The Linux Programming Interface 的书中读到了这个:

在 Linux 上,POSIX 消息队列被实现为虚拟中的 i 节点 文件系统、消息队列描述符和打开的消息队列 描述被实现为文件描述符和打开文件 分别描述。但是,这些是实现细节 SUSv3 不需要并且在其他一些 UNIX 上不适用 实现。

即使是VFS,也是存储在HardDisk上的吧?

考虑到这些信息,现在有人可以评论第二个问题吗? (和/或第一个如果还有更多要添加的内容)

【问题讨论】:

  • 我认为它只是存储在 RAM 中,而不是存储在硬盘上。它类似于 RAM 磁盘,因此您可以“像”文件系统一样访问它,但它不存在于硬盘上。

标签: linux message-queue posix-api


【解决方案1】:

下面的链接可能会让第一个问题更清楚 http://man7.org/linux/man-pages/man7/mq_overview.7.html

关于第二个问题,基于文件的队列当然会比基于内存的队列慢。但这可能没有一些随机文件访问操作那么慢,因为它是针对排队进行优化和实现的。

【讨论】:

  • 这值得被授予答案
猜你喜欢
  • 1970-01-01
  • 2016-11-26
  • 2011-11-26
  • 2010-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多