本文介绍了mac OS X上的原子增量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我在Mac OS X上搜索了原子递增和递减运算符,并发现了OSAtomic.h,但似乎只能在内核空间中使用。

I have googled for atomic increment and decrement operators on Mac OS X and found "OSAtomic.h", but it seems you can only use this in kernel space.

指示我在跨平台,它们在OS X上使用汇编或互斥(根据我的理解ifdefs的交错)。

Jeremy Friesner pointed me at a cross-platform atomic counter in which they use assembly or mutex on OS X (as far as I understood the interleaving of ifdefs).

在OS X上是否有类似 InterlockedDecrement atomic_dec()

Isn't there something like InterlockedDecrement or atomic_dec() on OS X ?

推荐答案

什么让你认为OSAtomic只是内核空间?以下编译和工作正常。

What makes you think OSAtomic is kernel space only? The following compiles and works fine.

#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;
}

这篇关于mac OS X上的原子增量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-08 16:02