¿Hay alguna razón para usar volátiles y sincronizados juntos en este código?Volátil con sincronizados juntos
public class Helper {
private volatile int n;
private final Object lock = new Object();
public Helper(int n) {
this.n = n;
}
public void setN(int value) {
synchronized (lock) {
n = value;
}
}
}
Class Helper debe ser seguro para subprocesos. Tengo este ejemplo del libro "Pautas de concurrencia de Java", pero todavía no está claro: ¿cuál es el motivo para usar volátiles y sincronizados juntos en este ejemplo?
¿Cuál es el libro exacto del que hablas? Recomiendo encarecidamente el libro Java Concurrency in Practice (http://jcip.net/) para aprender la simultaneidad de Java. –
He encontrado este libro aquí (Página 167) http://www.sei.cmu.edu/reports/10tr015.pdf Todo en este libro es bastante claro, excepto en este caso solamente –
Use AtomicInteger. – khachik