¿Por qué usar un ReentrantLock si uno puede usar sincronizado (esto)?
Estoy tratando de entender lo que hace que el bloqueo en la concurrencia sea tan importante si uno puede usarsynchronized (this)
. En el siguiente código ficticio, puedo hacer:
Código:
private final ReentrantLock lock = new ReentrantLock();
private static List<Integer> ints;
public Integer getResult(String name) {
.
.
.
lock.lock();
try {
if (ints.size()==3) {
ints=null;
return -9;
}
for (int x=0; x<ints.size(); x++) {
System.out.println("["+name+"] "+x+"/"+ints.size()+". values >>>>"+ints.get(x));
}
} finally {
lock.unlock();
}
return random;
}