Module  java.base

Package java.util.concurrent.locks

接口和类提供了一个框架,用于锁定和等待与内置同步和监视器不同的条件。 该框架在使用锁和条件方面允许更大的灵活性,而牺牲了更尴尬的语法。

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

ReadWriteLock接口类似地定义了可能在读者之间共享的锁,但是作者是排他性的。 只提供一个单一的实现, ReentrantReadWriteLock ,因为它涵盖了大多数标准的使用上下文。 但程序员可能会创建自己的实现来覆盖非标准要求。

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

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

从以下版本开始:
1.5