首先说下自己这一年敲代码用的到的IPC 方式,
第一 信号量 这个经常用最典型的killall -9 name 无法进行数据传输,只能通知事件的发生
第二 共享内存share memory 这个可以配合互斥锁或者信号量使用,据说是最高效的进程间通信方式,只是据说没有实际测试过比其它方式效率高多少
第三 socket socket也可以是进程通信方式一种,没有使用socket进行多个形成间的通信,不知道具体的效率,不过没有见过有整个系统主要的通信方式是基于socket的,一般只用于两个特定的进程间的通信,较多的用于app 和kernel 间的通信,不过对于这种方式对于数据解析很痛苦,需要在linux 网络协议栈里面截取数据
第四 消息队列,这个用的最多不过公司用的是改进后的消息队列机制,基于Linux字符设备的操作
第五 管道 一年来没有用过这种方式
PS: IPC方式没有谁比谁好,只有谁更适合你的系统