6

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

Q1。消息队列是否在硬盘而不是 RAM 上排队消息?

Q2。如果是这样,由于涉及 HardDisk ,这不应该在实施中非常缓慢吗?


编辑:

我在《Linux 编程接口》一书中读到了这一点:

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

即使是VFS,它仍然是存储在硬盘上的,对吧?

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

4

1 回答 1

6

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

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

于 2013-11-29T08:48:11.327 回答