Synchronized
2021-02-01 13:46:46 1 举报
AI智能生成
Synchroniz,Synchronized
作者其他创作
大纲/内容
应用方式
修饰实例方法,作用于当前实例加锁
修饰静态方法,作用于当前类加锁
修饰代码块,指定加锁对象
对象在内存中的布局
对象头
Mark Word
Mark Word 数据结构
Class Metadata Address
实例变量
填充数据
Monitor
Monitor结构
线程访问对应的Monitor锁的变化如图所示
代码块底层分析
Synchronize同步代码块的代码分析
Java代码
javap反编译后的字节码
主要关注的字节码
结论:
Synchronize同步方法块的代码分析
Java代码
Javap反编译后的字节码
结论:
Synchronize锁的状态
无锁(锁消除)
偏向锁
轻量级锁
自旋锁
重量级锁
QA
为什么Synchronize可以锁任何对象(包括Integer,String等所有对象)
为什么Synchronize具备重入性
Synchronize锁代码块和直接锁方法时底层实现上有什么不同?
子主题
notify/notifyAll/wait()等方法为什么是存在于Object顶级对象的方法当中的原因是什么?
收藏
0 条评论
下一页