- 管道:分匿名和命名。匿名管道(如
|)只用于父子进程,单向通信,数据存内核;命名管道有文件系统标识,可跨无亲缘关系进程,均按先进先出传无格式流。 - 消息队列:内核中的消息链表,数据是带类型的消息体(需收发方匹配类型),解决管道无格式问题,但需用户态与内核态数据拷贝,速度不及时。
- 共享内存:内核分配共享空间,进程直接访问,无需拷贝,是最快的方式,但多进程访问需同步,否则数据易错乱。
- 信号量:本质是资源计数器,通过 P/V 原子操作控制,用于保护共享资源(互斥)或同步进程,解决共享内存的竞争问题。
- 信号:异步通知机制,内核通知进程系统事件(如
Ctrl+C、kill命令),进程可默认处理、捕捉或忽略,仅SIGKILL和SIGSTOP无法捕捉 / 忽略。 - 套接字 Socket:可跨主机通信,也支持本地通信,分 TCP(可靠)、UDP(不可靠)、本地进程间通信三种类型,是跨主机进程通信的核心方式。