每个现代操作系统都提供了一些原子操作 :
Interlocked*
API<machine/atomic.h>
<atomic.h>
<libkern/OSAtomic.h>
任何类似于Linux的东西?
我的问题如下:
__sync_*
在所有平台(ARM)上都不受支持,并且不受英特尔编译器支持。<asm/atomic.h>
不应该用于用户空间,我没有成功地使用它。另外,我不确定它是否适用于英特尔编译器。发布于 2018-03-15 15:10:58
项目正在使用这个:
http://packages.debian.org/source/sid/libatomic-ops
如果你想要简单的操作,例如CAS,你不能只使用内核中特定于arch的实现,并且使用autotools / cmake在用户空间中进行arch检查。
发布于 2018-03-15 16:38:36
C&C ++的最新标准(2011年起)指定了原子操作:
stdatomic.h
std::atomic
https://stackoverflow.com/questions/-100003625
复制相似问题