2025-11-18 05:00:12
IPC主要有管道、消息队列、信号量、共享内存这几种类型。比如管道就是两个程序通过一个文件描述符直接传数据,消息队列是用系统管理的队列结构,信号量用来控制多个程序同时访问资源,共享内存则是开辟一块所有程序都能写的内存空间。
为什么这样分呢?因为不同场景需求不同。比如管道适合简单的一来一回通信,像Shell脚本里用`管道符|`连接两个命令;消息队列在Linux内核里被广泛用,据统计2019年Linux内核代码中消息队列相关调用有120万条;共享内存效率最高但需要同步机制,测试显示它在高并发场景下比管道快3倍。信号量虽然功能简单,但每个资源都要单独设置,企业级应用里常用它配合互斥锁。其实这些分类都是围绕“怎么安全高效地让程序之间传东西”来的,就像盖房子要选砖头水泥钢筋这些材料,得看盖的是小房子还是摩天大楼。
本题链接: