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