java 锁的类型_java锁的种类有哪些?类名是什么?

下面要给大家介绍的就是和java锁相关的内容,那么你知道在java当中,有多少种锁吗?java的锁有哪几种呢?下面一起来详细的进行了解吧!

一、java中都有哪些锁?

总的来讲的话,java当中有以下几种锁。

1、乐观锁和悲观锁

乐观锁:当一个线程去拿数据时,乐观锁认为不会有其他的线程对数据进行修改,所以不会上锁。

悲观锁:当一个线程去拿数据的时候,悲观锁认为一定会有其他的线程对数据进行修改,所以在这样的情况之下,线程在拿数据的时候都会加锁,当别的线程在这个时候想要去拿这个数据的时候,就会发生阻塞。

2、公平锁和非公平锁

公平锁:多个线程相互竞争时要排队,多个线程依照申请锁的顺序来获取锁。

非公平锁:多个线程相互竞争的时候,会插队,插队失败的时候,再排队。

3、分段锁

分段锁:它并不是具体的一种锁,只是一种锁的设计。

它的目的是将锁的粒度细化,在操作不需要对整个数组进行更新时,就仅仅针对数组当中的一项进行加锁操作。

4、独享锁和共享锁

独享锁:这种锁一次只可以被一个线程所持有。

共享锁:这种锁能够被多个线程所持有。

5、互斥锁和读写锁

读写锁:具体实现为读写锁ReadWriteLock。

6、锁升级(无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁)

JDK 1.6为了可以减少获得锁以及释放锁所带来的性能消耗,在JDK 1.6里引入了4种锁的状态:无锁、偏向锁、轻量级锁和重量级锁。

它会随着多线程的竞争情况逐渐升级,可是不能够降级。

7、可重入锁

可重入锁:对于同一个线程在外层方法获取锁时,在进入内层方法的时候也会自动获取锁。

以上的内容就是对于java锁的种类的简单介绍了,你都了解了吧!

更多java入门知识,请继续的关注奇Q工具网来了解吧。

推荐阅读:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值