模块  java.base

Package java.util.concurrent.locks

接口和类,提供用于锁定和等待与内置同步和监视器不同的条件的框架。 该框架在锁和条件的使用方面允许更大的灵活性,代价是更笨拙的语法。

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

ReadWriteLock接口类似地定义了可以在读取器之间共享的锁,但是对于编写者是独占的。 仅提供单个实现ReentrantReadWriteLock ,因为它涵盖了大多数标准使用上下文。 但是程序员可以创建自己的实现来覆盖非标准需求。

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

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

从以下版本开始:
1.5