iinc在Java中是原子的吗?

我知道没有锁定的C ++中增量操作不是原子的。

JVM会在其iinc指令执行中添加任何锁吗?

回答:

不,这不对

  • 检索c的当前值。
  • 将检索到的值增加1。
  • 将增加的值存储回c中。

原子性和线程干扰的Java文档

您需要使用synchronized关键字或使用AtomicXXX方法来确保线程安全。

public synchronized void increment() {

c++;

}

要么

AtomicInteger integer = new AtomicInteger(1);

//somewhere else in code

integer.incrementAndGet();

以上是 iinc在Java中是原子的吗? 的全部内容, 来源链接: utcz.com/qa/413731.html

回到顶部