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

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

在Windows上是否有官方批准的方式(除了用汇编语言自己实现它们之外)?

有帮助吗?

解决方案

您需要 Interlocked 功能。

其他提示

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

GLib提供一些原子操作,以及众所周知,他们可以在Windows上运行。您可以查看来源以获取创意或直接选择代码你需要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top