Блокировка параллелизма Java и использование условий - PullRequest
3 голосов
/ 02 июня 2010

Я могу использовать object.wait, object.notify и synchronized blocks для решения проблем типа производителя-потребителя. В то же время я могу использовать locks и conditions из пакета java.util.concurrent. Я уверен, что не могу понять, зачем нам нужны условия, когда мы можем использовать object.wait и notify, чтобы потоки ожидали выполнения какого-либо условия, например, очередь пуста или заполнена. Есть ли какая-то другая выгода, которую мы получаем, если используем java.util.concurrent.locks.Condition?

1 Ответ

4 голосов
/ 02 июня 2010

Эта статья дает хорошее объяснение:

Так же, как Lock является обобщением для синхронизация, фреймворк Lock включает в себя обобщение ожидания и уведомить называется условие. Объект блокировки действует как заводской объект для условия переменные, связанные с этим замком, и в отличие от стандартного ожидания и методы уведомления, может быть больше, чем одна переменная условия, связанная с данный замок.

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