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
中,我们有:Condition
、Lock
和 LockSupport
(以及其他)。
我在网上阅读了有关此软件包的信息,并了解 Lock
和 Condition
的基础知识。然而,我没看懂LockSupport
。我确实进行了搜索以了解 LockSupport
,但是没有找到任何相关内容可以帮助我了解它的用途。我看到在 LockSupport
中我们有 park()
, unPark()
等方法。但是,我没有明白 LockSupport
的目的是什么,它似乎在做大致相同 Lock
?
任何人都可以帮助我理解为什么我们有 LockSupport
以及 Lock
没有做什么。
它是一个帮助程序 class,具有非常低级别的并发机制,其他 classes 使用这些机制。除非您想编写自己的更高级别的并发结构,否则您可能不会使用它。
还有像 java.util.concurrent.locks.AbstractQueuedSynchronizer
这样的其他助手 classes,它们为 classes 提供了其他机制(例如 AQS
情况下的等待队列)你用的比较多,喜欢ReentrantLock
等等
我在多线程编程中使用了基本的 object.wait()
, object.notify() , object.notifyAll()
我知道我们有包 java.util.concurrent
并且它有 java.util.concurrent.locks
包。具体来说,在 java.util.concurrent.locks
中,我们有:Condition
、Lock
和 LockSupport
(以及其他)。
我在网上阅读了有关此软件包的信息,并了解 Lock
和 Condition
的基础知识。然而,我没看懂LockSupport
。我确实进行了搜索以了解 LockSupport
,但是没有找到任何相关内容可以帮助我了解它的用途。我看到在 LockSupport
中我们有 park()
, unPark()
等方法。但是,我没有明白 LockSupport
的目的是什么,它似乎在做大致相同 Lock
?
任何人都可以帮助我理解为什么我们有 LockSupport
以及 Lock
没有做什么。
它是一个帮助程序 class,具有非常低级别的并发机制,其他 classes 使用这些机制。除非您想编写自己的更高级别的并发结构,否则您可能不会使用它。
还有像 java.util.concurrent.locks.AbstractQueuedSynchronizer
这样的其他助手 classes,它们为 classes 提供了其他机制(例如 AQS
情况下的等待队列)你用的比较多,喜欢ReentrantLock
等等