关于读写File Mapping的同步问题
我的问题是这样:
假如我有两个运行中的进程,他们共享同一个File Mapping,一个持续写一个持续读,它们之间没有任何同步机制。
首先声明:根据实践发现没有同步机制也不会出任何冲突问题(数据完整性问题除外)。
我的问题是:我现在要严格保证 读 数据一方必须顺畅的从File Mapping里读取内容,不能任何打磕拌。那么请问,此时在 写 数据一方不停的写的情况下,读数据一方会不会偶尔被阻塞住?
换个说法就是,我的程序里不作同步保护,那么是不是操作系统实际上已经同步过了?(因为只要它同步过,读写双方就有一方被暂时阻塞的可能性)
补充一点:我的程序里,读写双方是在初始化阶段就纷纷用MapViewOfFile获得了LPVOID,然后后续的循环是对着这个LPVOID持续读写的。
假如我有两个运行中的进程,他们共享同一个File Mapping,一个持续写一个持续读,它们之间没有任何同步机制。
首先声明:根据实践发现没有同步机制也不会出任何冲突问题(数据完整性问题除外)。
我的问题是:我现在要严格保证 读 数据一方必须顺畅的从File Mapping里读取内容,不能任何打磕拌。那么请问,此时在 写 数据一方不停的写的情况下,读数据一方会不会偶尔被阻塞住?
换个说法就是,我的程序里不作同步保护,那么是不是操作系统实际上已经同步过了?(因为只要它同步过,读写双方就有一方被暂时阻塞的可能性)
补充一点:我的程序里,读写双方是在初始化阶段就纷纷用MapViewOfFile获得了LPVOID,然后后续的循环是对着这个LPVOID持续读写的。
...全文
相关推荐
C++内存共享实例编程
本实例将深入探讨C++如何实现内存共享,主要关注“文件映射”(File Mapping)这一机制。首先,理解内存共享的基本概念。
C++共享内存示例
然而,这也带来了同步问题,因为多个进程可能同时修改同一块内存。因此,我们需要使用互斥量(Mutex)或者临界区(Critical Section)等同步原语来确保数据的一致性。
易语言源码易语言文件映射源码.rar
在"易语言源码易语言文件映射源码.rar"这个压缩包中,我们主要探讨的是易语言中关于文件映射(File Mapping)的技术应用。
OS操作系统实验指导书
**文件映射(File Mapping)**:将文件映射到内存中,直接对内存进行操作即可完成文件读写,这种方式效率高,适合大文件的操作。3.
mfc两个独立对话框通过内存映射的方式可以传递值
还需要指定映射文件的大小,以及一些属性,如读写权限。


硬件/系统
