ReenTrantLock和Synchronized

相同点:

都是可重入锁,都是同一个线程没进入一次,锁的计数器自增1,等到锁的计数器为0时释放锁。

不同点:

1、Synchronized依赖jvm实现,实现方式比较难见到,ReetTrantLock依赖JDK实现,有源码可看。

2、Synchronized使用简单便捷,加锁,解锁由编译器实现;ReenTrantLock需要手动声明、加锁、解锁,功能更细粒度和灵活。

3、ReenTrantLock可以指定是公平锁还是非公平锁,Synchronized只能是非公平锁。

4、ReenTrantLock提供了一个条件类,可以分组唤醒需要唤醒的线程,Synchronized只能随机唤醒或者唤醒全部。

5、ReenTrantLock提供了可中断等待锁的线程的机制,通过lock.lockInterruptibly()来实现这个机制。

 

 

文章整理自:https://blog.csdn.net/z69183787/article/details/79344382

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值