摘要:
AtomicReference 通过volatile和Unsafe提供的CAS函数实现原子操作。 自旋+CAS的无锁操作保证共享变量的线程安全 但是CAS操作可能存在ABA问题。AtomicStampedReference的出现就是为了解决这问题 AtomicStampedReference 构造方 阅读全文
摘要:
自旋锁 自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。 获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。 自旋锁存在的问题 阅读全文
摘要:
AtomicLong的原理 AtomicLong是通过依靠底层的CAS来保障原子性的更新数据,在要添加或者减少的时候,会使用死循环不断地cas到特定的值,从而达到更新数据的目的。 LongAdder的原理 LongAdder是在AtomicLong的基础上将单点更新压力分散到各个节点,在低并发的时候 阅读全文