在Win32互锁函数提供对数据原子操作一个mecanism。他们应该是线程安全和多处理器安全。

如果数据不对齐,会发生什么?互锁行动仍在原子? 例:递增未对准的整数。

有帮助吗?

解决方案

如果你读过大部分互锁API函数,有指定的线沿线的一些言论:

“变量指向的加数参数必须在32位边界对齐;否则,该功能将行为无法预测在多处理器x86系统和任何非x86系统参见_aligned_malloc。”

有关的例子,请参见本 MSDN文档

这基本上是说,你需要调整你的正确结果的数据,使用_aligned_malloc。

scroll top