2_synchronized
2021-11-01 11:05:36 9 举报
AI智能生成
synchronized
作者其他创作
大纲/内容
用法
修饰对象分类
同步方法
同步非静态方法<br>
同步静态方法
同步代码块
获取锁分类
获取对象锁
获取类锁
monitor
每一个对象都有一个monitor<br>
过程
1.当线程要占有资源,先检查monitor是否等于0,<br>0没有被占用,这时候线程占有资源,并且对这个monitor+1。<br>如果不为零表示被占用。当线程释放,monitor减1
同一个线程可以对同一个对象进行多次加锁<br>
注意事项
与模拟题而关联的对象不能为空
synchronized作用域太大<br>
不同的monitor企图锁相同的方法
多个锁交叉导致死锁
概念<br>
互斥性
可见性
原理分析
线程堆栈分析(互斥)
JVM指令分析
不同版本
JVM对synchronized的优化
偏向锁<br>
轻量级锁
重量级锁
对象实例<br>
对象头Mark word
无锁状态
偏向锁
轻量级锁
重量级锁
<br>
实例变量class metadata address
填充数据array Length
自旋锁:竞争失败的时候,不是马上转化级别,而是执行几次空循环
锁消除
JIT在编译的时候把不必要的锁去掉
0 条评论
下一页