1.共享内存可以直接创建,内存映射需要磁盘文件(匿名映射除外)
2.共享内存效果更高
3.内存
所有的进程操作的是同一块共享内存。
内存映射,每个进程在自己的虚拟地址空间中有一个独立的内存。
4.数据安全
- 进程突然退出
共享内存还存在
内存映射区消失
- 运行进程的电脑死机,宕机了
数据存在在共享内存中,没有了
内存映射区的数据 ,由于磁盘文件中的数据还在,所以内存映射区的数据还存在。
5.生命周期
- 内存映射区:进程退出,内存映射区销毁
- 共享内存:进程退出,共享内存还在,标记删除(所有的关联的进程数为0),或者关机
如果一个进程退出,会自动和共享内存进行取消关联
共享内存和内存映射的区别
最新推荐文章于 2026-05-20 09:42:53 发布
本文探讨了共享内存和内存映射的区别与优劣。共享内存直接创建,而内存映射通常需要磁盘文件(匿名映射除外)。共享内存效率更高,但多个进程操作同一内存可能导致数据安全问题。当进程退出,共享内存依然存在,需要手动清理;而内存映射区随进程结束销毁,但数据可持久化于磁盘。在生命周期管理上,共享内存需关注关联进程数量,内存映射依赖磁盘文件的保护。理解两者特性对于优化系统性能和保障数据安全至关重要。

1348

被折叠的 条评论
为什么被折叠?



