模块 java.base

包 java.util.concurrent.locks


java.util.concurrent.locks
接口和类提供了一个框架,用于锁定和等待不同于内置同步和监视器的条件。该框架以更笨拙的语法为代价,在使用锁和条件方面提供了更大的灵活性。

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

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

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

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

自从:
1.5