对象头主要是由MarkWord(锁的信息和分代信息)标志字段和KClass Pointer类型指针两部份构成。
背景:锁升级的过程包括四个锁:
1.1无锁:无线程使用是数据时,就没有必要上锁。
1.2偏向锁:只有一个线程时,同样不上锁,但是这个数据会偏向这个线程。
1.3轻量锁:少量线程争抢时,对于共享的资源争抢时,线程不会被挂起,而是处于自旋的状态,积极的尝试资源是否能被使用;好处是:少量线程的状态下,线程自旋带来的新能开销,远小于线程挂起与唤醒,上下文切换的性能开销。
1.4重量级锁:许多线程时采用互斥同步的锁方式实现同步。
MarkWord的结构: