ReentrantLock(中文直译:可重入锁), 特点:
- 可中断
- 可设置超时时间
- 可设置公平锁
- 支持多个条件变量(设置条件,让线程等待)
- 与Synchronized一样,都支持重入
ReentrantLock的实现原理
ReentrantLock主要是利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似。
构造方法接受一个可选的公平参数(默认非公平锁)。当设置true时,表示公平锁否则为非公平锁。
公平锁的效率往往没有非公平锁效率高。在许多线程访问的情况下,公平锁表现出较低的吞吐量。