7 消息队列
7.1 概念说明
这里讨论的消息队列是操作系统层面的 IPC 机制,不同于应用组件中的消息中间件。简单来说,就是内核维护的一个队列结构,用于进程间传递数据。
7.2 工作原理
消息队列属于系统级 IPC,由用户设置一个共享的 key 值(A、B 进程均可见),双方约定通过该 key 访问同一个队列。内核中会维护相应的描述结构体。

消息队列和共享内存一样,都是系统级的 IPC。如果数据节点只包含数据,操作系统如何区分归属?必须保证数据块是有类型的。因此,消息队列是一种向另一个进程发送有类型数据块的方式。
核心系统调用如下:

7.3 接口函数
涉及的主要接口包括创建、发送、接收及删除等,具体参数结构参考下图:


7.4 常用命令
查看消息队列状态:

删除消息队列:

8 信号量
在共享内存场景中,由于缺乏保护机制,多进程并发访问容易导致数据竞争。信号量正是为了解决这一问题而引入的同步互斥工具。
注:此处侧重理论理解,线程部分的信号量将在后续章节展开。
8.1 概念补充
学习管道时可能对'共享资源'感知不强,但信号量能让我们深刻理解多进程如何访问同一份资源。














