文章目录
- 说一说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)