Lock. java и LockSupport. java: для чего у нас есть LockSupport? - PullRequest
1 голос
/ 22 февраля 2020

Я использовал basi c 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() et c. Тем не менее, я не понял, какова цель LockSupport, похоже, он работает более или менее так же, как Lock?

Может кто-нибудь, пожалуйста, помогите мне понять, почему у нас LockSupport и что это делает то, что Lock не делает.

1 Ответ

2 голосов
/ 22 февраля 2020

Это вспомогательный класс с механизмами параллелизма очень низкого уровня, которые используются другими классами. Если вы не хотите писать собственные структуры параллелизма более высокого уровня, вы, вероятно, не будете его использовать.

Существуют другие вспомогательные классы, такие как java.util.concurrent.locks.AbstractQueuedSynchronizer, которые предоставляют другие механизмы (например, очереди ожидания в случае AQS ) к классам, которые вы с большей вероятностью будете использовать, например ReentrantLock и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...