直接回答:常见的进程间通信(IPC)方式有:管道(匿名管道,父子进程间单向)、命名管道 FIFO(无亲缘关系进程间)、消息队列、共享内存、信号量、信号、以及 socket(可用于本机也可跨网络)。
展开解析:选型看三个维度:数据流向、效率、是否需跨机器。共享内存是最快的 IPC——数据不经过内核拷贝,一旦建好映射读写如同访问普通内存,但必须配合信号量或互斥锁做同步,否则有竞态;消息队列和管道由内核维护缓冲区,自带同步但需两次拷贝,且管道是字节流、消息队列保留消息边界。信号是异步通知机制,只携带事件编号,不适合传数据。socket 最通用,是唯一能跨主机的方案(本机可用 Unix domain socket,开销低于 TCP,还支持传递文件描述符)。此外内存映射文件(mmap)也可算共享内存的变体。追问方向:共享内存为什么最快、管道缓冲区满时的阻塞行为、匿名管道为何只能用于父子进程。