cuando se usa sincronizado para bloquear la escritura, si es necesario volátil para evitar el valor antiguo leído o no el valor completo?

como titulado. Tengo uso sincronizado para proteger la escritura de subprocesos múltiples. pero quiero saber si necesito agregar volátil para proteger la lectura. (como sabemos, también puedo usar sincronizado para proteger la lectura, pero evitará leer y escribir de manera concordante. Además, si uso el bloqueo de reentrada, también evitará).

private volatile BigDecimal cacheMiss = BigDecimal.ZERO;

public  BigDecimal getCacheHit() {
    return cacheHit;
}

public void increaseCacheMiss() {
    synchronized (cacheMissLock) {
        this.cacheMiss = this.cacheMiss.add(STEP);
    }
}
Respuesta 1

Estoy usando una biblioteca de terceros en mi aplicación web en tomcat. El problema es que una clase de esa biblioteca de terceros requiere inicialización con un archivo XML LibraryClass lb = new LibraryClass ("archivo ...

Ok, no lo entiendo. Tengo el siguiente código (y SÍ, sé que no hace nada): paquete com.prim.esaa.gui; import com.jme3.app.SimpleApplication; Sim3DAnimator clase pública se extiende ...

Estoy trabajando en un código Xquery (usando SAXON) para ejecutar un archivo XQuery simple en un archivo XML grande. El archivo XML (ubicado en this.referenceDataPath) tiene 3 millones de nodos de "fila" y tiene la forma: & ...

Tengo un programa Java que se ejecuta automáticamente todas las mañanas y contiene varios métodos que son independientes entre sí. A veces tengo que hacer pruebas, así que comentaré todos los ...