『就是喜欢草莓』Java重入锁ReentrantLock
文章图片
相同点就是都实现了独占锁的功能 , 并且都支持重入 , ReentrantLock是显式的需要调用lock , sysnchronized是隐式的 。 重入的意思是第一次获取了锁 , 在持有锁期间可以再次获取该锁 , 不用等待 , 也就是不会阻塞 。 不同点:1、ReentrantLock是可以中断的 , 即调用响应中断的获取锁的方法lockInterruptibly2、可以实现公平锁(ReentrantLock(booleanfair)) , 在创建实例的时候传到一个是否公平的参数 。 公平锁就是根据请求的顺序获取锁 , 等待时间最长的优先获取 。 公平锁可以解决饥饿发生概率 , 但是会频繁切换线程 。 3、可以设置超时时间tryLock(longtime,TimeUnitunit) , 解决死锁的情况 。 实现锁的重入1、线程再次获取锁 , 如果当前锁被占有 , 直接获取直接成功2、锁的释放 , 如果获取了x次 , 在释放的时候也会释放x次 , 获取一次计数器加一 , 释放计数一次减一 , 等完全释放后计数为零 , 其他线程就可以再次获取 。
文章图片
如果使用lock方法 , 需要在finally块中执行unlock方法 。
【『就是喜欢草莓』Java重入锁ReentrantLock】
文章图片
文章图片
- 热门新鲜事这就是丰巢收费的理由,两头亏损?5年亏了20亿想让客户承担
- 「5G」联发科的尴尬:天玑1000比麒麟990强,打平骁龙865,就是没厂商用
- 外星人:中国神话就是外星人打架,甚至毁掉了地球,留下遗族世代守护家园
- 小小的科技观75吋 C8 至臻QLED TV就是你想要的,买电视要有好画质,TCL
- 「华为」游戏本来袭!九大豪华游戏笔记本推荐:配置顶级 强悍,喜欢嘛?
- 【UC浏览器】为什么很多人都喜欢用UC浏览器?小编姐姐告诉你原因
- 『』最大天敌就是自己,3种死在自己手里的生物,它们身上都埋有炸弹
- 苹果■30岁大叔的桌面:就是这么朴实无华
- 韩小剑下个月就是618打算换手机了有没有类似P20大小的手机推荐?
- 【iPhone SE】他将iPhone6换成新iPhoneSE后直呼:不喜欢太复杂就买SE