Java 中,提供了两种方式来实现同步互斥访问:synchronized 和 Lock
同步器的本质就是加锁
加锁目的:序列化访问临界资源,即同一时刻只能有一个线程访问临界资源(同步互斥访问)
不过有一点需要区别的是...升级的时候也是在内部直接升级
何时升级为重量级锁
当竞争更加激烈的时候, 轻量级锁在指定的循环内还没有释放锁, 就说明竞争很激烈了, 这时,就将其升级为重量级锁。...jdk1.6以后, 锁从偏向锁升级到轻量级锁,再到重量级锁, 这个过程是否是可逆的呢?
答案是,这个过程是不可逆的。 因为从重量级锁在退回到轻量级锁也是没有意义的。 为什么呢?你的并发已经很多的。...偏向锁的锁标志位是101, 我们来看看是不是101.
?
如上面代码, 一共打印了两次内存空间....在第二次, 加了偏向锁, 打印了两次内存, 第一次是在同步代码块以外, 这时候打印的锁状态是101偏向锁, 难道说, 启动了偏向锁以后, 我的对象没有加任何同步块, 也会加一个锁么?