synchronized 实现过程
今日看马士兵老师讲解synchronized 实现过程 以自己的理解记录
1.java代码使用 :synchronized 关键字放入代码块或方法
2.编译过程: 字节码文件中编译的synchronized关键字 其实就是一个监视器,monitorenter进入监视器 (进入锁状态) , moniterexit 退出监视器 (退出锁状态)
3.执行过程:执行过程中,自动锁升级
锁升级步骤:
创建对象 --》偏向锁 --》轻量级锁(自螺旋十遍)--》重量级锁
4. 底层汇编语言:lock comxchg