Зачем использовать ReentrantLock, если можно использовать синхронизированный(это)? ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Зачем использовать ReentrantLock, если можно использовать синхронизированный(это)?

Сообщение Anonymous »

Я пытаюсь понять, почему блокировка в параллельном режиме так важна, если можно использовать синхронизированное (это). В приведенном ниже фиктивном коде я могу либо:
  • синхронизировать весь метод, либо синхронизировать уязвимую область (synchronized(this){...})
  • ИЛИ заблокируйте уязвимую область кода с помощью ReentrantLock.
Код:
private final ReentrantLock lock = new ReentrantLock();
private static List ints;

public Integer getResult(String name) {
lock.lock();
try {
if (ints.size()==3) {
ints=null;
return -9;
}

for (int x=0; x

Подробнее здесь: https://stackoverflow.com/questions/118 ... onizedthis

Вернуться в «JAVA»