synchronize关键字的锁升级
在java对象在堆内存中有:对象头和对象数据和对齐偏移量组成
下面是无锁 升级到轻量级锁
当有新的线程尝试获取 偏向锁失败(即修改id),然后在等到上个线程执行到安全点(不是立刻去修改对象的头部)
轻量级锁的场景:适用于多个线程交替执行
重量级锁:使用与高并发的项目,所以前面申请偏向锁轻量级所等有点多余,浪费时间,直接用重量级锁即可
在java对象在堆内存中有:对象头和对象数据和对齐偏移量组成
当有新的线程尝试获取 偏向锁失败(即修改id),然后在等到上个线程执行到安全点(不是立刻去修改对象的头部)
轻量级锁的场景:适用于多个线程交替执行
重量级锁:使用与高并发的项目,所以前面申请偏向锁轻量级所等有点多余,浪费时间,直接用重量级锁即可