java多线程

1.synchronized&Lock.lock() 基于对象监视+队列

2.Atomic* 基于CAS

 缺点:

  1. 出现资源争用
  2. 相对来说比较占Cpu周期
  3. 出现aba问题

3.volatile,基于CPU Lock指令,一旦被修改,其他线程里的该对象地址会失效需要重新获取。保证了值的最新。

4.volatile的使用优化,独占cache line的对象。避免False sharing

并发框架Disruptor译文 http://coolshell.cn/articles/9169.html

原文地址:https://www.cnblogs.com/huamulou/p/2957733.html