Alternativas flexibles para el bloqueo (bloqueo selectivo)

Necesito resolver la situación para objetos iguales con diferente ubicación de memoria (sucede para la solicitud REST debido a subprocesos múltiples).

Así que, como parte de la solución, he implementado el servicio. Estoy compartiendo aquí las partes más importantes:

private Map<T, ReentrantLock> lockHolder = new HashMap();

void unLock(T monitorMarker) {
    synchronized (lockHolder) {
        ReentrantLock lock = lockHolder.get(monitorMarker);
        if (lock == null || lock.getHoldCount() == 0) {
            return;
        }
        lock.unlock();
        if (lock.getHoldCount() == 0) {
            lockHolder.remove(monitorMarker);
        }
    }
}

ReentrantLock getLockForCalendar(T monitorMarker) {
    synchronized(monitorMarker) {
        ReentrantLock lock = lockHolder.get(monitorMarker);
        if (lock == null) {
            lock = new ReentrantLock();
            lockHolder.put(monitorMarker, lock);
        }
        return lock;
    }
}

en general funciona sin problemas.

n este momento, necesito asignar esta utilidad a los metadatos del dominio (la solución podría estar usandoMap<String, Map<Object, Lock>> o inyección de caché y nada irresoluble) ...

Prefiero usar JDK util o open source util con una solución similar porque ya proporcionan el manejo de estos casos ... Creo que muchos desarrolladores que enfrentan problemas similares y la solución deberían estar presentes en las bibliotecas de código abierto. He investigadospring utilidades,apache utilidades algunagoogle bibliotecas pero no he encontrado un resultado satisfactorio.

Sugiérame que considere las bibliotecas correctas para usar, por favor.

Respuestas a la pregunta(1)

Su respuesta a la pregunta