【问题标题】:Equivalent of InterlockedIncrement in Linux/gccLinux/gcc 中的 InterlockedIncrement 等价物
【发布时间】:2011-01-08 17:11:27
【问题描述】:

这将是一个非常简单的问题(可以重复),但我找不到它。

Win32 API 提供了一组非常方便的原子操作(作为内在函数),例如发出 lock add x86 代码的InterlockedIncrement。此外,InterlockedCompareExchange 映射到 lock cmpxchg

但是,我想用 gcc 在 Linux 中做到这一点。由于我使用的是 64 位,因此不可能使用内联汇编。 gcc 有内在函数吗?

【问题讨论】:

标签: c++ c multithreading assembly intrinsics


【解决方案1】:

【讨论】:

  • 谢谢! __sync_fetch_and_add 就是那个。
  • 实际上,InterlockedIncrement() 的等价物是 __sync_add_and_fetch()。 __sync_fetch_and_add() 返回前一个值,不像 InterlockedIncrement() 返回新值。
猜你喜欢
  • 2022-10-04
  • 1970-01-01
  • 2013-09-08
  • 2011-12-17
  • 1970-01-01
  • 1970-01-01
  • 2019-05-10
  • 2012-10-17
  • 1970-01-01
相关资源
最近更新 更多