私はBrian GoetzによってJCIPを読んでいます。 CAS命令を使用してノンブロッキングカウンタの実装について説明します。私は、CAS命令を使用して増分がどのように起こっているのか理解できませんでした。誰も私がこれを理解するのを助けることができますCASと非ブロッキングカウンタ
public class CasCounter {
private SimulatedCAS value;
public int getValue() {
return value.get();
}
public int increment() {
int v;
do {
v = value.get();
}
while (v != value.compareAndSwap(v, v + 1));
return v + 1;
}
}