繁体   English   中英

高级比较和交换(CAS)功能?

[英]High-level Compare And Swap (CAS) functions?

我想说明比较和交换(CAS)原子基元可以使用哪些高级功能(即C ++而不是内联汇编程序)。

例如,x86上的WIN32在<_intrin.h>标头中具有_InterlockedCompareExchange函数_InterlockedCompareExchange

我将让其他人列出各种平台特定的API,但是为了将来在C ++ 09中参考,您将获得

atomic_compare_exchange() 

在新的“原子操作库”中进行操作。

glib是Linux和Unix系统上的通用系统库(但Windows和Mac OS X也支持),它定义了几个原子操作 ,包括g_atomic_int_compare_and_exchangeg_atomic_pointer_compare_and_exchange

GCC也有一些内置的原子访问权限

在Solaris上有“ atomic.h”(即<sys / atomic.h> )。

MacOS X具有OSAtomic.h

关于此主题,已经有一系列工作组论文提出对C ++标准库的更改。 WG N2427C ++原子类型和操作 )是最新的文档 ,它构成了待定标准的第29节- 原子操作库

Java也有此CAS操作

这里

有实际的用途,例如多处理器系统中使用的无锁哈希表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM