Я создаю параллельное приложение на Java. Для того, чтобы не подвергать мой объект блокировки внешне, у меня есть объект с private
final
блокировки:В Java безопасно ли блокировать и синхронизировать один и тот же объект?
private final Object Lock = new Object();
я использую блокировку для синхронизации между потоками:
synchronized (Lock) {
// Do stuff
}
Я также использовать блокировку ждать условий :
while (conditionIsNotMet) {
Lock.wait();
}
Использование одного и того же объекта для обоих шаблонов параллелизма вызывает проблемы? Есть ли что-то, что я должен соблюдать, когда это делаешь?
Не уверен, что я понимаю. Для работы 'wait()' вам нужно иметь как для работы. – sstan
Мне нужно 'synchronized' использовать' wait() '? – sdgfsdh
Попробуйте вызвать 'wait()' вне блока 'synchronized'. Что происходит? – sstan