【问题标题】:Alternatives to GCC's new atomic integer operationsGCC 新原子整数运算的替代方案
【发布时间】:2010-12-10 15:15:15
【问题描述】:

GCC 最近对atomic operations 的支持(如here 所述)非常棒,是我们需要的90%。不幸的是,我们的一些产品仍然需要在 Windows 上运行,因此我们也需要在 Windows 上进行原子整数操作。

过去,我们对所有平台都有自定义的汇编语言实现,但我想将所有 *nix 平台转移到 GCC 支持的操作上,我想到也许还有一种更标准的方法现在也可以在 Windows 上执行此操作...

是否有官方认可的方式在 Windows 上执行此操作(除了自己用汇编语言实现它们)?

【问题讨论】:

  • 是否可以选择使用 MinGW?它们在 gcc 版本 4.4.0,即原子操作应该可用;无论如何,我避免使用 MS 编译器进行 C 编程,因为 C99 支持严重缺乏......

标签: c atomic ref operations counting


【解决方案1】:

您需要Interlocked 函数。

【讨论】:

【解决方案2】:

这取决于您需要哪一个——我认为 Windows 上没有(预构建的)每个实现(可能在 gcc 中除外),但其中一些已经存在了很长一段时间. Windows有InterlockedIncrement、InterlockedDecrement、InterlockedAdd、InterlockedOr、InterlockedXor等。

【讨论】:

    【解决方案3】:

    GLib 提供了some atomic operations,并且已知它们可以在 Windows 上运行。您可以inspect the sources 获取想法或直接选择您需要的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多