CAS的特点

结合CAS和volatile可以实现无锁并发,适用于线程少、多核CPU的情况下,因为要保证线程并行,如果线程少于CPU核心数就可以实现线程的真正并行,减少CPU对于线程的调度。

  • CAS是基于乐观锁的思想:最乐观的估计,不怕别的线程来修改共享变量,就算改了也没关系,你改了我就晚点改,我不跟你抢,《格局》,虽然是基于乐观锁的思想,但实际是无锁实现。
  • synchronized是基于悲观锁的思想:最悲观的估计,得防着其它线程来修改共享变量,注意我要上锁了,我正在拿锁,你们都往后稍稍,我改完了释放锁,你们才有机会。
  • CAS体现的是无锁并发、无阻塞并发:

    1. - 因为没有使用synchronized,所以线程不会进入阻塞,这是效率提升的原因之一<br /> - 如果竞争激烈,可以想到重试会频繁发生,反而效率会受到影响