海湾合作委员会最近对atomic operations的支持(如here所述)非常棒,占我们所需要的90%。不幸的是,我们的一些产品仍然需要在Windows上运行,所以我们也需要Windows的原子整数运算。
过去,我们为所有平台都有自定义汇编语言实现,但是我想将所有* nix平台移到GCC支持的操作上,我想到了这个想法也许还有更标准的方法现在也可以在Windows上执行此操作...
在Windows上是否有官方批准的方式(除了用汇编语言自己实现它们之外)?
答案 0 :(得分:6)
您需要Interlocked个功能。
答案 1 :(得分:0)
这取决于你需要的那些 - 我认为在Windows上没有(预构建的)每一个实现(除了可能在gcc中)但是其中一些已经存在了很长一段时间。 Windows具有InterlockedIncrement,InterlockedDecrement,InterlockedAdd,InterlockedOr,InterlockedXor等。
答案 2 :(得分:0)
GLib提供some atomic operations,并且已知它们可以在Windows上运行。您可以inspect the sources获取想法或直接选择所需的代码。