Java对象在内存中存储的布局可以分为3块区域: 对象头、实例数据、对齐填充。对象头,分为两个部分,第一个部分存储对象自身的运行时数据,又称为第二部分是类型指针,指向类元数据指针,虚拟机通过此指针,确定该对象属于那个类的实例。轻量级锁是相对于重量级锁(线程进入同步块时,如果此同步对象没有被锁定(即锁标志位为然后虚拟机使用CAS操作,尝试将一旦有两条以上的线程抢占该锁,轻量级锁会升级为重量级锁。锁标志位置为轻量级锁释。引入偏向锁的目的是在没有多线程竞争的前提下,进一步减少线程同步的性能消耗。开启偏向锁模式后,锁第一次被线程获取的时候,虚拟机会把对象头中当有另外一个线程去尝试获取这个锁时, 偏向模式就宣告结束。
暂无评论