java并发-synchronized关键字

2020-08-10T03:51:43
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

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

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

同步方法的实现方式

同步代码块的实现方式

锁的升级

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

第一种状态,无锁状态

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

第二种状态,偏向锁状态

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

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

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

扫一扫关注公众号添加购物返利助手,领红包
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。