我知道在没有锁定的情况下,增量操作在 C++ 中不是原子的。
JVM 会在其iinc
指令的实现上加任何锁吗?
最佳答案
不,不是
- 获取c的当前值。
- 将检索到的值增加 1。
- 将增量值存储回 c。
Java Documentation for Atomicity and Thread Interference
您需要使用 synchronized
关键字或使用 AtomicXXX
线程安全方法。
更新:
public synchronized void increment() {
c++;
}
或
AtomicInteger integer = new AtomicInteger(1);
//somewhere else in code
integer.incrementAndGet();
关于java - iinc在Java中是原子的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15287419/