高级比较和交换(CAS)功能?
-
02-07-2019 - |
题
我想记录哪些高级(即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节 - 原子操作库 - 待定标准。