首页 > 代码库 > 显示锁(ReentranLock)
显示锁(ReentranLock)
1. Lock接口:定义了一组抽象的加锁操作,提供了一种无条件的、可轮询的、定时的以及可中断的锁获取操作,所有的加锁和解锁的方法都是显示的。
2. ReentrantLock锁:实现了Lock接口,并提供了与synchronized相同的互斥性和内存可见性,也提供了可重入的加锁语义。finally后需要调用unlock,一旦忘记,则会埋下一颗定时炸弹。
(1)目的:内置锁无法中断一个等待获取锁的线程,或者无法在请求一个锁时无限地等待下去。
(2)轮询锁与定时锁:此类锁的获取模式是由tryLock方法实现的,具有更完善的错误恢复机制。
内置锁中,死锁是一个很严重的问题,恢复程序的唯一办法是重新启动程序,而防止死锁的唯一办法是在构造程序时避免出现不一致的锁顺序;内置锁很难实现带有时间限制的操作。
而可定时与可轮询的锁提供了:避免死锁的发生。
(3)可中断的锁和非快结构的加锁
显示锁(ReentranLock)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。