底层实现原理

1.volatile的应用

  定义:Java 编程语言允许线程访问共享变量,为了确保共享变量能够被准确和一致地更新,

          线程应该通过排他性单独获得这个变量。

     如果一个字段使用volatile修饰,Java 线程内存模型确保所有线程看到这个变量的值是一致的。其生成的汇编指令

     包含Lock前缀,实现原理:

     1)Lock前缀指令会引起处理器缓存回写到内存

     2)一个处理器的缓存回写到内存会导致其他处理器的缓存失效

     优化:针对高速缓存行宽度

2.synchronized的应用

     无锁状态

   偏向锁

     轻量级锁

     重量级锁

3.原子操作的实现原理

     缓存锁定

     总线锁定

原文地址:https://www.cnblogs.com/fight-tao/p/5295799.html