Java原子整数和C#Interlocked.Increment方法之间的区别

本文关键字:方法 之间 区别 Increment C#Interlocked 整数 Java | 更新日期: 2023-09-27 17:57:44

我只是想知道,在Java中增量静态变量的方式和在线程环境中增量C#的方式有区别吗?

在Java中,您使用原子int:s来进行此操作,而在C#中,您则使用Interlocked.Invement(ref-yourVar)

我指的不是你写的代码,而是它实际上是如何锁定内存并进行实际增量的。

Java原子整数和C#Interlocked.Increment方法之间的区别

互锁操作不会锁定内存,而是根据操作向指令发出lock前缀。这导致处理器断言总线锁定,所以只执行一次指令。您可以进一步查看下面的文章

在Java的情况下,"它的工作方式"取决于执行平台的指令集。我读到(今天早些时候,在等待无休止的操作系统升级完成时)在x86上AtomicXxx类是使用Compare and Swap(CAS)指令实现的。