Czy ta klasa jest bezpieczna dla wątków?AtomicInteger vs synchronized getters/setters
Czy można wyświetlić niespójne wartości? Powiedzmy, że początkowo wartość a wynosi 80. Wątek 1 wywołuje setA(100)
i wchodzi do funkcji, ale jeszcze nie zadzwonił pod numer a.set(100)
, a wątek 2 jednocześnie wywołuje getA()
. Czy w wątku 2 można zobaczyć 80?
public class A {
private AtomicInteger a;
public int getA() {
return a.get()
}
public void setA(int newVal){
a.set(newVal);
}
}
wiem, że synchronizacja będzie gwarantować wątek 2 100 widzi, ale nie wiem z AtomicInteger.