Lock.java 和 LockSupport.java:我们有 LockSupport 的目的是什么?

Lock.java and LockSupport.java: what purpose we have LockSupport?

我在多线程编程中使用了基本的 object.wait() , object.notify() , object.notifyAll()

我知道我们有包 java.util.concurrent 并且它有 java.util.concurrent.locks 包。具体来说,在 java.util.concurrent.locks 中,我们有:ConditionLockLockSupport(以及其他)。

我在网上阅读了有关此软件包的信息,并了解 LockCondition 的基础知识。然而,我没看懂LockSupport。我确实进行了搜索以了解 LockSupport ,但是没有找到任何相关内容可以帮助我了解它的用途。我看到在 LockSupport 中我们有 park()unPark() 等方法。但是,我没有明白 LockSupport 的目的是什么,它似乎在做大致相同 Lock?

任何人都可以帮助我理解为什么我们有 LockSupport 以及 Lock 没有做什么。

它是一个帮助程序 class,具有非常低级别的并发机制,其他 classes 使用这些机制。除非您想编写自己的更高级别的并发结构,否则您可能不会使用它。

还有像 java.util.concurrent.locks.AbstractQueuedSynchronizer 这样的其他助手 classes,它们为 classes 提供了其他机制(例如 AQS 情况下的等待队列)用的比较多,喜欢ReentrantLock等等