我一直在尋找到Java API java.util.concurrent.atomic中, 特別是的AtomicInteger類。Java的原子方法
方法註釋說這些方法是原子的。
取getAndIncrement()例如:
public final int getAndIncrement() {
for (;;) {
int current = get();
int next = current + 1;
if (compareAndSet(current, next))
return current;
}
}
其中,因爲它是記錄,爲 「以原子遞增一個的電流值」。
究竟是什麼使這種方法原子? 從我所看到的,這完全是「非原子」 - 許多週期參與其執行,並聲明
int next = current + 1;
例如下一個可設定的值的執行過程中 由另一個線程。
它是原子的,因爲任何其他線程都會將其視爲原子操作。 – zch