面试必问--synchronized实现原理及锁升级过程你懂吗
synchronized实现原理及锁升级过程 前言: synchronized是Java内置的机制,是JVM层面的,而Lock则是接口,是JDK层面的 尽管最初synchronized的性能效率比较差,但是随着版本的升级,synchronized已经变得原来越强大了,本文带大家了解的是synchronized实现原理及锁升级过程,希望可以帮助到大家。 1.用法 synchronized可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码。 synchronized有三种应用方式: 作用于实例方法,当前实例加锁,进入同步代码前要获得当前实例的锁; 作用于静态方法,当前类加锁,进去同步代码前要获得当前类对象的锁; 作用于代码块,对括号里配置的对象加锁。 2.实现原理 2.1 Java对象头 synchronized用的锁存在Java对象头里,Java对象头里的Mark Word默认存储对象的HashCode、分代年龄和锁标记位。在运行期间,Mark Word里存储的数据会随着锁标志位的变化而变化。32位JVM的Mark Word可能变...