1 通信方式对比
管道 | 消息队列 | 共享内存 | 信号 | |
开辟空间 | 内存 | 内存 | 内存 | 不开辟额外空间 |
读写方式 | 双向 / 单向 (信息流) | 先进先出 (消息体) | 操作内存 (数值数组) | 发送处理信号 |
效率 | 一般 | 一般 | 快 | 异步 |
是否需要互斥 | 不需要 | 不需要 | 需要 |
同步和互斥:
(1) 临界资源: 对多个进程或线程均可见 (也即均可操作), 会产生被争夺的资源; 如共享资料
(2) 临界区: 操作临界资源的代码段
(3) 同步: 是一种制约关系, 为完成某种任务多个进程协调次序等待, 传递消息, 完成工作, 这种关系源于进程间的合作; 基于接口本身的一种特性, 也就是所谓的阻塞
(4) 互斥: 是一种间接的制约, 当一个进程进入临界区时, 其他进程就无法操作临界资源, 只有当该进程结束对临界资源的使用时, 其他进程才能使用, 这种技术往往是通过人为加锁完成的; 是临界资源相互争夺的方式
拓展理解可以参考进程间通信的方式信号管道消息队列共享内存 http://www.cnblogs.com/LUO77/p/5816326.html
来源: http://www.bubuko.com/infodetail-2543572.html