共享内存
1、实现原理:
共享内存区域说白了就是多个进程共享的一块物理内存地址,只是将这块物理内存分别映射到自己的虚拟空间地址上。
假设有 10 个进程将这块区域映射到自己的虚拟地址上,那么,这 10 个进程间就可以相互通信。
由于是同一块区域在10 个进程的虚拟地址上,当第一个进程向这块共享内存的虚拟地址中写入数据时,
其他 9 个进程也都会看到。
因此共享内存是进程间通信的一种最快的方式。但是进程之间使用这块共享空间时,必须做同步控制。
- 进程的地址空间都是独立,受保护的!
- 共享内存通信方式是最快的IPC,因为不需要数据的copy,所以效率较高
2、特点
- 因为多个进程操作同一块物理内存,所以进程必须同步执行
- 因为进程直接通过虚拟地址操作物理内存,所以不需要拷贝数据,共享内存是最快的一种进程间通讯方式
- 共享内存的生命周期随进程,也需要显示地删除。
- 共享内存没有互斥与同步机制,因此,我们在使用时