锁优化

**优化方案:锁消除、锁粗化、偏向锁、轻量级锁、自旋锁**

 1. 锁消除:部分内部源码存在着关键字synchronize,(如Vector),但有时用不到这个锁, 所以在编译时会消除这个锁。来提高性能。
 2. 锁粗化:我们知道在使用同步锁的时候,需要讲同步范围缩小,减小每个线程持有锁的时间。
 3. 偏向锁:偏向,如名字所言,会偏向于第一个访问的线程, 如果运行过程中,只有一个线程,不存在多线程的情况,不需要触发同步,则加一个偏向锁。遇到了别的线程抢锁,会消除他的偏向锁,恢复到标准的轻量锁。 (即只有一个线程,无竞争时同步原线程,提高了程序的运行)
 4. 自旋锁:对多线程并发时频繁的挂起和恢复线程的操作问题的锁, 有时锁的等待时间可能很短,频繁的挂起和恢复相比执行空时间消耗大。所以选择将线程一直处于工作状态,当线程获取了锁就会继续执行代码。 否则执行空。
 5.  轻量级锁:(与轻量级锁对应的是重量级锁: synchronize) 轻量级锁所适应的场景是线程交替执行同步块的情况,
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值