En Java, do ReentrantLock.lock()
y ReetrantLock.unlock()
utilizan el mismo mecanismo de bloqueo que synchronized()
?Mezcla sincronizada() con ReentrantLock.lock()
Mi conjetura es "No", pero espero estar equivocado.
Ejemplo:
Imagínese que el hilo 1 y Tema 2 ambos tienen acceso a:
ReentrantLock lock = new ReentrantLock();
hilo 1 se ejecuta:
synchronized (lock) {
// blah
}
de rosca 2 se ejecuta:
lock.lock();
try {
// blah
}
finally {
lock.unlock();
}
Supongamos que el hilo 1 llega es la primera parte, luego el Subproceso 2 antes de que finalice el Subproceso 1: ¿subirá el Subproceso 2 al Subproceso 1 para salir del bloque synchronized()
o se ejecutará?
Eso es lo que pensé. Hay un lugar donde necesito usar 'ReetrantLock.tryLock()', y esperaba salirse con 'synchronized' en todos lados. Gracias. –