5

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

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

在 Windows 上是否有官方认可的方法(除了自己用汇编语言实现它们)?

4

3 回答 3

6

您需要联锁功能。

于 2009-10-27T19:55:44.770 回答
0

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

于 2009-10-27T19:57:29.837 回答
0

GLib 提供了一些原子操作,并且已知它们可以在 Windows 上运行。您可以检查想法的来源或直接选择您需要的代码。

于 2009-10-27T19:59:32.817 回答