进程间通信方式
一、进程间通信的方式
- 无名管道:半双工通信方式,数据只能单向流动且只能在有亲缘关系的进程间使用
- 有名管道:半双工通信方式,允许在非亲缘关系的进程间使用
- 信号:通知接收进程某个事件已发生
- 消息队列:传递消息的链表,存放在内核中。克服了信号传输信息少,管道只能传输无格式字节流以及缓冲区大小受限的缺点
- 信号量:一个计数器,用来控制多个进程对共享资源的访问。常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源
- 共享内存:映射一份能被其他进程所访问的内存,这份内存由一个进程创建但其他进程可以访问
- 套接字:不同机器之间的进程通信
二、共享内存有什么缺点?如何解决?
共享内存不提供同步机制,在使用共享内存进行通信时需要借助其他手段来进行进程间的同步工作,常与信号量一起使用实现同步对共享内存的访问。