En el libro de Brian Goetz, Java concurrencia en la práctica, su ejemplo de una cerradura Reentrante se programa como esto:¿Hacer estático el Reentrant Lock y convertirlo en un mutex?
Lock lock = new ReentrantLock();
Sin embargo, tengo curiosidad por saber si se cambia el código anterior para:
private static final Lock lock = new ReentrantLock();
hace que el bloqueo actúe ahora como un mutex, o si es innecesario y redundante.
Por lo tanto, ¿la funcionalidad de este código cambia si el bloqueo se hace privado, estático y final?
lock.lock();
try {
//method stuff
} finally {
lock.unlock();
}
Gracias a todos de antemano. Matt
perfecto. Gracias. –
Consulte también http://www.ibm.com/developerworks/java/library/j-jtp10264/ para obtener más información sobre bloqueos frente a la palabra clave sincronizada. –
Perdón por excavar esta publicación, pero estoy buscando este tema ahora. ¿Me interesa si la creación de un 'bloqueo de ReentrantLock final estático privado 'no se considera un olor a código? He leído que las variables estáticas son malas, pero mi caso de uso actual en el que estoy trabajando parece el lugar ideal para usarlo. Cuidado para ayudar? – Bobzone