在java.util.concurrent
包中,有两个很特殊的工具类,Condition
和ReentrantLock
,使用过的人都知道,ReentrantLock
(重入锁)是jdk的concurrent
包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchronizer
(同步器),确切的说是ReentrantLock
的一个内部类继承了AbstractQueuedSynchronizer
,ReentrantLock
只不过是代理了该类的一些方法,可能有人会问为什么要使用内部类在包装一层? 我想是安全的关系,因为AbstractQueuedSynchronizer
中有很多方法,还实现了共享锁,Condition
(稍候再细说)等功能,如果直接使ReentrantLock
继承它,则很容易出现AbstractQueuedSynchronizer
中的API被无用的情况。
http://www.importnew.com/9281.html
时间: 2024-10-12 09:12:54