我已经在Mac OS X上搜索了原子增量和减量运算符,并找到了“OSAtomic.h”,但是看来您只能在内核空间中使用它。

Jeremy Friesner向我指出了一个跨平台的atomic counter,其中他们在OS X上使用汇编或互斥锁(据我了解,ifdefs的交错)。

OS X上没有InterlockedDecrementatomic_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/

10-11 17:52