我想记录哪些高级(即C ++非内联汇编程序)函数或宏可用于比较和交换(CAS)原子基元......

例如,x86上的WIN32在_InterlockedCompareExchange标题中有一系列函数<_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上有<!> quot; atomic.h <!> quot; (即 <! > LT;!SYS / atomic.h中<> GT;

MacOS X有 OSAtomic.h

有一系列关于此主题的工作组论文提议对C ++标准库进行更改。 WG N2427 C ++原子类型和操作)是最新的,它有助于第29节 - 原子操作库 - 待定标准。

java也有这个CAS操作

参见这里

有实际用途,例如

scroll top