文章目录
一、悲观锁示例 ( ReentrantLock )
二、重量级锁弊端
三、锁的四种状态 ( 无锁状态 | 偏向锁 | 轻量级锁 | 重量级锁 )
四、锁的四种状态之间的转换 ( 无锁状态 ->..., 无锁 , 偏向锁 , 轻量级锁 , 重量级锁 ;
三、锁的四种状态 ( 无锁状态 | 偏向锁 | 轻量级锁 | 重量级锁 )
----
Java 虚拟机堆内存中的对象数据中 , 每个对象都有一个对象头..., 结构如下 :
对象头 中封装了 锁的状态 , 当锁的状态发生改变时 , 对应的锁的标志位也进行相应修改 ;
无锁状态 : 不进行加锁 , 线程不安全 ;
偏向锁 : 第
1
个访问 共享资源...四、锁的四种状态之间的转换 ( 无锁状态 -> 偏向锁 -> 轻量级锁 -> 重量级锁 )
----
锁的四种状态之间转换 : 在保证线程安全的前提下 , 尽可能提升效率 ;
无锁 : 刚开始执行时..., 无锁 ;
无锁 -> 偏向锁 : 第
1
个线程访问共享资源时 , 无锁状态升级为偏向锁 ;
偏向锁 -> 轻量级锁 : 第
2
个线程再来访问 共享资源 时 , 偏向锁 升级为