在使用POSIX消息队列时,我注意到文件系统上创建了一些文件,名称我正在创建队列。我的问题:
Q1。消息队列是否将硬盘上的消息排队,而不是RAM?
Q2。如果是这样,那么实施起来不应该很慢,因为它涉及HardDisk吗?
编辑:
我在书The Linux Programming Interface中看到了这一点:
在Linux上,POSIX消息队列在虚拟中实现为i节点 文件系统,消息队列描述符和打开消息队列 描述实现为文件描述符和打开文件 描述,分别。但是,这些是实现细节 这是SUSv3不需要的,并且在其他UNIX上不成立 的实施方式。
即使它是VFS,它仍然存储在HardDisk上,对吗?
记住这些信息,现在有人可以评论第二个问题吗? (和/或如果还有更多要补充的话,也可以是第一个)
答案 0 :(得分:6)
以下链接可能会对第一个问题有所了解 http://man7.org/linux/man-pages/man7/mq_overview.7.html
关于第二个问题,当然基于文件的队列将比基于内存的队列慢。但这可能不像一些随机文件访问操作那么慢,因为它是针对排队进行优化和实现的。