Module java.base

Package java.util.concurrent.locks


package java.util.concurrent.locks
提供了一个用于锁定和等待条件的框架的接口和类,这个框架与内置的同步和监视器不同。该框架允许在锁和条件的使用上更灵活,但语法更加笨拙。

Lock接口支持在语义上不同的锁定规则(可重入、公平等),并且可以在非块结构的上下文中使用,包括递交和锁重排序算法。主要实现是ReentrantLock

ReadWriteLock接口类似地定义了可以被读者共享但对写者排他的锁。只提供了一个实现,ReentrantReadWriteLock,因为它涵盖了大多数标准使用情境。但程序员可以创建自己的实现以满足非标准需求。

Condition接口描述了可以与锁关联的条件变量。这些在使用上类似于使用Object.wait访问的隐式监视器,但提供了扩展功能。特别是,多个Condition对象可以与单个Lock关联。为了避免兼容性问题,Condition方法的名称与相应的Object版本不同。

AbstractQueuedSynchronizer类作为定义依赖于排队阻塞线程的锁和其他同步器的有用超类。AbstractQueuedLongSynchronizer类提供了相同的功能,但扩展了对64位同步状态的支持。两者都扩展了类AbstractOwnableSynchronizer,这是一个简单的类,用于记录当前持有独占同步的线程。LockSupport类提供了更低级别的阻塞和解除阻塞支持,对于那些实现自己定制锁类的开发人员很有用。

自JDK版本:
1.5