CompareAndSwap
【小城贝尔】
比较交换乐观锁,保证原子硬件做。
A V 相 比改新值,A B 又 A 无人识。
public class CAS {
public static void main(String[] args) {
//实现2原理使用了 compare and swap 可以保证数据的唯一性 原子性
AtomicInteger ain = new AtomicInteger(10);
for (int i = 0; i < 10; i ++){
new Thread(()->{
Integer get = ain.decrementAndGet();
System.out.println(Thread.currentThread().getName()+"抢到了 。。left number =====> "+get);
}).start();
}
/*
Thread-0抢到了 。。left number =====> 9
Thread-2抢到了 。。left number =====> 8
Thread-4抢到了 。。left number =====> 7
Thread-6抢到了 。。left number =====> 6
Thread-8抢到了 。。left number =====> 5
Thread-1抢到了 。。left number =====> 4
Thread-9抢到了 。。left number =====> 3
Thread-3抢到了 。。left number =====> 1
Thread-5抢到了 。。left number =====> 2
Thread-7抢到了 。。left number =====> 0
*/
}
}