显示锁(ReentranLock)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了显示锁(ReentranLock)相关的知识,希望对你有一定的参考价值。

1. Lock接口:定义了一组抽象的加锁操作,提供了一种无条件的、可轮询的、定时的以及可中断的锁获取操作,所有的加锁和解锁的方法都是显示的。

2. ReentrantLock锁:实现了Lock接口,并提供了与synchronized相同的互斥性和内存可见性,也提供了可重入的加锁语义。finally后需要调用unlock,一旦忘记,则会埋下一颗定时炸弹。

(1)目的:内置锁无法中断一个等待获取锁的线程,或者无法在请求一个锁时无限地等待下去。

(2)轮询锁与定时锁:此类锁的获取模式是由tryLock方法实现的,具有更完善的错误恢复机制。

内置锁中,死锁是一个很严重的问题,恢复程序的唯一办法是重新启动程序,而防止死锁的唯一办法是在构造程序时避免出现不一致的锁顺序;内置锁很难实现带有时间限制的操作。

而可定时与可轮询的锁提供了:避免死锁的发生。

(3)可中断的锁和非快结构的加锁

 

以上是关于显示锁(ReentranLock)的主要内容,如果未能解决你的问题,请参考以下文章

java ReentranLock锁

ReentranLock锁解析

ReentranLock锁解析

ReentranLock锁解析

ReentranLock锁解析

锁机制及锁优化