synchronized三种使用方式(有图)
1.普通同步方法(实例方法):锁是当前实例对象,进入同步代码前要获得当前实例的锁
2.静态同步方法:锁是当前类的class对象,进入同步代码前要获得当前类对象的锁
3.同步方法块:其中普通代码块参数可以是类的一个属性也可以是当前对象,它的同步效果和修饰普通方法一样,如果代码块参数是当前class类对象,则于修饰静态方法类似。相比以上两种用法更加精细。
synchronized的三种用法: synchronized的三种用法
synchronized的底层实现
synchronized的底层实现: synchronized的底层实现