2008-09-30 46 views
12

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

例如,x86上的WIN32具有一系列函数_InterlockedCompareExchange<_intrin.h>标题中。

回答

16

我就让别人列出各种特定平台的API,但对于C++ 09日后参考,你会得到新的“原子操作库”的

atomic_compare_exchange() 

操作。

+0

甜蜜的回答!等不及... – paxos1977 2008-09-30 05:35:05

1

Java有此CAS操作,也

看到here

有这个实际用途,如在多处理器系统中使用的lock-free hashtable

+0

这个问题被标记为C++;) – paxos1977 2008-09-30 16:24:38

8

油腔滑调,在Linux和Unix系统中常见的系统库(但也支持Windows和Mac OS X),定义several atomic operations,包括g_atomic_int_compare_and_exchangeg_atomic_pointer_compare_and_exchange

2

在这个问题上已经有一系列的工作组论文提出了对C++标准库的修改。 WG N2427C++原子类型和操作)是最新的,它对未决标准的第29部分 - 原子操作库作出贡献。