刚开始是无锁状态,然后当有线程获取锁对象的时候线程会修改对象头中的锁标志位为01,并把指向的线程id修改成自己,之后同步块的时候就只需要查看对象头中偏向的线程id是不是自己,不需要去加锁解锁,当有其他线程也要访问这把锁的时候也就是发生了竞争,锁就会升级成轻量级锁,当一个线程想要访问轻量级锁的时候,看到锁的标志位为00的时候就知道这个锁是轻量级锁,然后就会在自己的栈中创建一块叫做lock record的空间,lock record中存放了markword的副本和owner指针,然后通过cas操作来让owner指针指向mark word(markword中30bit存放了lock record的位置)