2
我想了解是否存在使用InterlockedCompareExchange()来更改由CreateFileMapping(INVALID_HANDLE_VALUE创建的段中的内存并在多个进程之间共享的任何隐藏问题。共享内存段中的位置的原子比较和交换
换句话说,进程是否依赖CAS语义来操作它们共享的内存块?我想他们可以,只是想确认一下。
谢谢
我想了解是否存在使用InterlockedCompareExchange()来更改由CreateFileMapping(INVALID_HANDLE_VALUE创建的段中的内存并在多个进程之间共享的任何隐藏问题。共享内存段中的位置的原子比较和交换
换句话说,进程是否依赖CAS语义来操作它们共享的内存块?我想他们可以,只是想确认一下。
谢谢
CAS操作将与该内存完美配合。文件映射API和虚拟内存系统完成将内存映射到多个进程的所有艰难工作。当你把手放在记忆中时,你无法将它与其他任何记忆区分开来。
大卫,这是一个“聪明的猜测”还是你写了任何实际依赖于此的代码?理论上这应该工作得很好,但是我正在寻找的是确认Windows内存管理器中没有任何已知的与此有关的怪癖。 – Angstrom
这只是一天结束时的记忆。它与使用VirtualAlloc映射的内存真的没有什么不同。 –
够公平的,谢谢。 – Angstrom