Java并发编程中自旋锁会浪费 CPU 资源并导致错误

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

相关推荐 去reddit讨论