ReentrantLock实现机制

公平锁和非公平锁
公平锁的实现:谁等待时间长,谁先获取锁
非公平锁:随机获取的过程,谁运气好,cpu时间片论询到那个线程,谁先获取锁
不可重入锁和可重入锁
不可重入锁就是当前线程执行某个方法已知获取了该锁,那么在方法中尝试再次获取锁时就获取不到被阻塞,可重入锁恰好与之相反,不会被阻塞
Reentrant lock提供了无条件的,可轮询的,定时的,以及可中断的锁获取操作而且加锁和解锁都是显式的

底层实现

try Acquire(ary)–>获取独占锁,获取成功直接返回,获取成功直接返回,获取不成功,调用add waiter将当前线程包装为一个节点,插入到队列,返回节点到accquireQuened方法中,尝试获取节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值