几种进程间通讯方式比较
在写程序的时候,出于并发或者其他使用场景,我们往往会使用到多进程开发,在多进程开发中非常重要的一点就是进程间通讯。进程间通讯包含以下几种方式:
- 信号
- 信号量
- 管道
- 消息队列
消息队列时消息的链表,存放在内核中并由消息队列标识符标识。消息队列客服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限的问题。
- 优点:
- 缺点: - Socket
- 内存共享
共享内存其内容就是字面意思,为多个进程共用同一段存储空间。共享内存实现中一般是由一个进程创建,然后由多个进程可以访问,在其他进程访问这段数据的时候,因为是直接访问内存,省略了数据传输与转换的时间,所以速度相比其他通讯方式要快得多,在共享内存的视线中IPC方式是最快的,它是针对进程间通讯方式运行效率低儿专门设计的,其往往与其他通信机制配合使用,以解决通信过程中的同步问题。
- 优点:速度快
- 缺点: 只能实现同一台电脑上不同进程间的通讯、内存管理难度大、当数据较大时容易占用大量的内存空间造成内存冗余
- 难点: 数据同步
管道
消息队列
什么是消息队列
几大MQ比较
Kafka
RabitMQ
ActiveMQ
RocketMQ
Socket
共享内存

参考文章
进程间通讯七种方式
C++ 中共享内存原理及实现
C++ 共享内存实现
如何利用内存池和共享内存构建高速的进程间通信模型

浙公网安备 33010602011771号