26.java中锁的机制

 

synrhronized

 

 如果synrhronized加在静态方法上,则锁住整个class;如果加在实例方法中,锁this,即当前对象。

 

 

自旋锁

 

基本思路就是自旋,不成功再阻塞,尽量降低阻塞的可能性,这可以提高那些执行时间很短的代码块的性能。

 

 

CAS与偏向锁

 

 CAS(Comparet and swap)就好比安检仪器,如果检测同步操作时有异常就反复尝试,直到异常释放才可以操作成功。 

 偏向锁好比有了一个记录机制,如果一个线程第一次检测没问题,之后再使用它就不需要检测。如果遇到了一个比他权限高的线程,持有偏向锁的线程会先挂起,然后等全限高的线程执行完,再恢复运行。

 

 

轻量级锁与重量级锁

 

轻量级锁如CAS,没有涉及到操作系统干涉线程的阻塞和挂起。性能消耗小。但是如果这个CAS竞争非常激烈,会导致性能下降,那么直接就用重量级锁如synrhronized

 

 

原图

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值