¿Podría decirme si debería liberar el bloqueo antes de esperar con la condición?Condición: ¿debería desbloquearse antes de esperar?
try {
lock.lock();
while (isNotEmpty()) {
condition.await();
}
} finally {
lock.unlock();
}
O
try {
lock.lock();
while (isNotEmpty()) {
lock.unlock();
condition.await();
}
} finally {
lock.unlock();
}
¿Ha leído [el Javadoc] (http://docs.oracle.com/javase/7/docs /api/java/util/concurrent/locks/Condition.html)? – assylias
'acquire(); prueba {use(); } finally {release(); } ' Si su adquisición ('lock') falla, liberará el recurso que nunca tuvo. En este caso, puede desbloquear un bloqueo de cerradura [reentrant]. –