文章目录
- 说一说synchronized在JDK1.6之后做了哪些优化?
- 一、为什么加上`synchronized`关键字就能实现锁,它的原理是怎么回事呢?
- 1.1 字节码查看synchronized的实现
- 1.2 为什么Java6之前的synchronized效率很低?
- 1.3 Java6对synchronized的优化
- 二、Java对象头
- 2.1 Java对象头简介
- 2.2 锁的升级
- 无锁状态
- 偏向锁
- 轻量级锁
- 重量级锁
- 各种锁的对比
- 锁升级过程
- 参考链接
说一说synchronized在JDK1.6之后做了哪些优化?
synchronized是Java中非常重要的一个关键字,对于Android开发同学来说,考虑到多线程的情况,一般都直接使用到synchronized关键字对方法或者对象上锁。
但是问题是为什么加上synchronized关键字就能实现锁,它的原理是怎么回事呢?
一、为什么加上synchronized关键字就能实现锁,它的原理是怎么回事呢?
1.1 字节码查看synchronized的实现
如果我们使用javap -vxxx.class 反编译这样一个class文件
public static void main(string[] args)