c++ - _InterlockedCompareExchange64的用法

标签 c++ multithreading atomic

在 MSDN 上,我看到了

InterlockedCompareExchange64

要求参数64位对齐,

但是为了

_InterlockedCompareExchange64 

我认为没有这样的对齐要求,它是 提到为 InterlockedCompareExchange64 提供编译器内在支持。

那么,这是否意味着我可以在不关心对齐的情况下使用 _InterlockedCompareExchange64?因为我不太清楚对齐在这里意味着什么。

最佳答案

我很确定这是一个文档错误,而不是两个函数之间的任何直接区别 - 因为它们导致完全相同的 CMPXCHG8B 指令。 [当然假设你正在寻找它在 SMP 系统上实际上是原子的 - 但它是一个非常专业的指令,所以我怀疑它有很多其他用途]。

关于c++ - _InterlockedCompareExchange64的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18204830/

相关文章:

c++ - 编译时类型检查 C++

c++ - 如何使用较旧的 glibc 版本编译 SPEC CPU 2006 基准测试?

android - 想要延迟 1 秒显示数字

c++ - 为什么在 std::atomic 中使用 volatile 限定符?

c++ - 用户泄漏、libc++ 泄漏或误报

c++ - 从 vector 数组制作平面文件

multithreading - 多线程中的 OpenGL VBO

c++ - C++/Clr 中 C++ 全局实例的多线程

java - JAVA中使用Atomic和无限循环做同步

c++ - C/C++ 中的结构赋值是原子的吗?