我已经在Mac OS X上搜索了原子增量和减量运算符,并找到了“OSAtomic.h”,但是看来您只能在内核空间中使用它。
Jeremy Friesner向我指出了一个跨平台的atomic counter,其中他们在OS X上使用汇编或互斥锁(据我了解,ifdefs的交错)。
OS X上没有InterlockedDecrement
或atomic_dec()
吗?
最佳答案
是什么让您认为OSAtomic仅是内核空间?以下内容可以编译并正常工作。
#include <libkern/OSAtomic.h>
#include <stdio.h>
int main(int argc, char** argv) {
int32_t foo = 1;
OSAtomicDecrement32(&foo);
printf("%d\n", foo);
return 0;
}
关于c++ - Mac OS X上的原子增量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2124633/