Java 原子整数和 C# 互锁之间的差异。增量方法
2022-09-04 22:00:21
我只是想知道,在Java中增加静态变量的方式和在线程环境中增加C#的方式之间有区别吗?
在Java中,你使用原子int:s来执行此操作,在C#中,你使用Interlocked.Incement(ref yourVar)
我这里不是指你写的代码,而是它实际上如何锁定内存并进行实际增量。
我只是想知道,在Java中增加静态变量的方式和在线程环境中增加C#的方式之间有区别吗?
在Java中,你使用原子int:s来执行此操作,在C#中,你使用Interlocked.Incement(ref yourVar)
我这里不是指你写的代码,而是它实际上如何锁定内存并进行实际增量。
在Java的情况下 - “它是如何工作的”取决于执行平台的指令集。我正在阅读(今天早些时候,在等待无休止的操作系统升级完成时),在x86上,AtomicXxx类是使用比较和交换(CAS)指令实现的。