在并发编程中,自旋锁(spin locks )想必大家都不陌生。 自旋锁一个非常经典的使用场景是CAS(即比较和交换),是一种无锁的思想(说白了就是使用了无限循环),用来解决更新数据的问题高并发场景。 atomic包下的很多类,如AtomicInteger、AtomicLong、AtomicBoolean等,都是用CAS实现的。 我们以AtomicInteger类为例,它incrementAndGet不会每次都给变量加 1。 public final int incrementAndGet() {
return unsafe.getAndAddInt(..