繁体   English   中英

Java atomic integer 和 C# Interlocked.Increment 方法之间的区别

[英]difference between Java atomic integer and C# Interlocked.Increment method

我只是想知道,在线程环境中如何在 Java 和 C# 中增加 static 变量之间有区别吗?

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

我所说的并不是指您编写的代码,而是它实际上是如何锁定 memory 并执行实际增量的。

联锁操作不会锁定 memory,而是根据操作向指令发出 LOCK 前缀。 这会导致处理器断言总线锁定,因此只执行一次指令。 你可以进一步看看下面的文章

在 Java 的情况下 - “它是如何工作的”取决于执行平台的指令集。 我正在阅读(今天早些时候,在等待无休止的操作系统升级完成时)x86 AtomicXxx 类是使用比较和交换 (CAS) 指令实现的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM