我想记录哪些高级(即 C++ 不是内联汇编器)函数或宏可用于比较和交换(CAS)原子原语......
_InterlockedCompareExchange
例如,x86 上的 WIN32在标头中有一系列函数<_intrin.h>
。
我想记录哪些高级(即 C++ 不是内联汇编器)函数或宏可用于比较和交换(CAS)原子原语......
_InterlockedCompareExchange
例如,x86 上的 WIN32在标头中有一系列函数<_intrin.h>
。
我会让其他人列出各种特定于平台的 API,但为了将来在 C++09 中参考,您将获得
atomic_compare_exchange()
新的“原子操作库”中的操作。
glib 是 Linux 和 Unix 系统上的通用系统库(但也支持 Windows 和 Mac OS X),定义了几个原子操作,包括g_atomic_int_compare_and_exchange和g_atomic_pointer_compare_and_exchange。
GCC 也有一些内置的原子访问。
在 Solaris 上有“atomic.h”(即<sys/atomic.h>)。
MacOS X 有OSAtomic.h
已经有一系列关于这个主题的工作组论文提议对 C++ 标准库进行更改。WG N2427(C++ 原子类型和操作)是最新的,它为待定标准的第 29 节——原子操作库做出了贡献。