我在多线程编程中使用了基本的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
没有做什么。
这是具有较低级别机制的帮助程序类。除非您想编写自己的高级并发结构,否则可能不会使用它。还有其他帮助程序类,例如java.util.concurrent.locks.AbstractQueuedSynchronizer
,它们为you更可能使用的类(例如AQS
等)提供其他机制(例如,在ReentrantLock
情况下等待队列)。