解释
A reentrant mutual exclusion Lock with the same basic behavior and semantics as the implicit monitor lock accessed using synchronized methods and statements, but with extended capabilities. 可重入的互斥锁,基本功能和synchronized相同,但是具有扩展性
原理分析
先从ReentrantLock的源代码看起,仅列出核心的代码,又出现了常见的AbstractQueuedSynchronizer
public class ReentrantLock implements Lock, java.io.Serializable{private final Sync sync;abstract static class Sync extends AbstractQueuedSynchronizer {}// 非公平锁static final class NonfairSync extends Sync{}// 公平锁static final class FairSync extends Sync{}// 默认是非公平锁public ReentrantLock() {sync = new NonfairSync();}//public Condition newCondition() {return sync.newCondition();}//获取锁public void lock() {sync.lock();}// 释放锁public void unlock() {sync.release(1);}}
