偏向锁:
会延迟开启,性能比轻量级锁好,没有其它线程会拿到此锁的对象。偏向锁与hasCode是互斥的。
轻量级锁:
没有其它线程去竞争此锁对对象,其它线程可以交替执行。
重量级锁:
有其它线程会去竞争拿到此锁对象,当调用wait()方法时,直接膨胀成重量级锁。
当在一个线程A中一个类的多个对象频繁多次膨胀成另一个线程B的轻量级锁。当膨胀了20次后,会批量将这个对象的类的所有对象都偏向为B线程。