锁优化

本文详细介绍了Java中的自旋锁及自适应自旋锁的工作原理,锁消除与锁粗化的应用,以及轻量级锁和偏向锁的具体实现方式。通过这些内容帮助开发者理解如何在Java程序中更高效地使用锁。

一.自旋锁和自适应自旋锁

    自旋锁:不让线程挂起,(需要一个以上的处理器)让其短时间(可以设定,超时则挂起线程)执行一个忙循环,

    自适应自旋锁:不固定等待时间,由虚拟机自行判断是否挂起(类似人工智能)

二.锁消除

    编译器运行时,消除实现同步被检测到不可能存在共享数据竞争的锁消除,(其实是大部分消除javaAPI中非程序员加的锁)

三.锁粗化,大部分时候尽量锁的范围越小越好,但在循环中反复加锁,浪费性能,不如在循环外加锁

四.轻量级锁:

无.偏向锁:在无竞争的情况下,将同步去掉    

    

转载于:https://www.cnblogs.com/2nao/p/6499005.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值