Linux 进程间通信进阶:消息队列与信号量
7. 消息队列
7.1 概念辨析
这里讨论的消息队列是操作系统层面的 IPC(进程间通信)机制,不同于应用组件级别的 MQ。简单来说,就是内核维护的一个队列结构,用于在不同进程间传递数据。
7.2 工作原理
消息队列由用户设置的 key 值标识,A、B 两个进程通过约定好的 key 访问同一个队列。双方通过往队列插入节点来通信。内核中会维护一个描述结构体,确保数据块带有类型信息,这样系统才能区分数据归属。
核心定义: 消息队列是一种让一个进程给另一个进程发送有类型数据块的方式。

消息队列和共享内存都属于系统级 IPC。如果需要更底层的控制,可以查看相关系统调用接口。

7.3 常用接口
主要涉及创建、发送、接收和删除操作。具体函数原型如下:


7.4 管理命令
在命令行下也可以对消息队列进行管理和清理。
查看消息队列:

删除消息队列:

8. 信号量
在使用共享内存时,我们常面临一个问题:共享内存本身没有保护机制。如果多个进程同时读写,数据就会乱套。这时候就需要信号量来保驾护航。











