01-POSIX消息队列
第52章 POSIX消息队列
本章将介绍POSIX消息队列,它允许进程之间以消息的形式交换数据。POSIX消息队列与System V消息队列的相似之处在于数据的交换单位是整个消息,但它们之间仍然存在一些显著的差异。
- POSIX消息队列是引用计数的。只有当所有当前使用队列的进程都关闭了队列之后才会对队列进行标记以便删除。
- 每个System V消息都有一个整数类型,并且通过msgrcv()可以以各种方式类选择消息。与之形成鲜明对比的是,POSIX消息有一个关联的优先级,并且消息之间是严格按照优先级顺序排队的(以及接收)。
- POSIX消息队列提供了一个特性允许在队列中的一条消息可用时异步地通知进程。
POSIX消息队列被添加到Linux中的时间相对来讲是比较短的,所需的实现支持在内核2.6.6中才被加入(此外,还需要glibc 2.3.4或之后的版本)。
POSIX消息队列支持是一个通过CONFIG_POSIX_MQUEUE选项配置的可选内核组件。