java并发-synchronized关键字

原创
2019/12/14 16:14
阅读数 32

synchronized关键字可以修饰普通方法,静态方法,当修饰普通方法,锁对象是当前对象,当修饰静态方法,锁对象是当前类的class

synchroinzed关键字可以使用同步代码块实现同步,此时可以指定锁对象。

同步方法的实现方式

同步代码块的实现方式

锁的升级

锁升级是多个线程经过synchronized包裹的代码片段或方法,锁的类型的变化过程。 锁升级只能是升级过程,没有降级过程。

第一种状态,无锁状态

普通方法调用,不带同步代码块的代码执行都是无锁状态,多个线程可同时执行这样的方法和代码

第二种状态,偏向锁状态

当只有一个线程执行同步代码块,同步方法时,此时处于偏向锁状态,当这个线程进入同步方法或同步代码块之前。

第三种状态,轻量级锁状态

第四种状态,重量级锁状态

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部