¿Es esta clase segura para subprocesos?AtomicInteger vs getters/setters sincronizados
¿Es posible ver valores inconsistentes? Digamos que inicialmente el valor de a es 80. El hilo 1 llama al setA(100)
y entra en la función pero todavía no llamó a a.set(100)
y el hilo 2 al mismo tiempo llama al getA()
. ¿Es posible que el Tema 2 vea 80?
public class A {
private AtomicInteger a;
public int getA() {
return a.get()
}
public void setA(int newVal){
a.set(newVal);
}
}
Sé que sincronizarlo garantizará que el hilo 2 vea 100, pero no está seguro con AtomicInteger.