Rozważmy następujący kod, chcę, aby to bezpieczne klasę gwintu, tak że nigdy nie dostanie liczba nieparzysta:Czy mogę używać zsynchronizowany do końcowego pola?
class Test {
private int value = 0;
private final Object lock;
public void add() {
synchronized (lock) {
value++;
value++;
}
}
public int getValue() {
synchronized (lock) {
return value;
}
}
}
jestem teraz wątpliwości pola blokady, co jest uznane za ostateczne, to będzie materia? lub złamie bezpieczeństwo wątku?
Myślę, że jeśli pole blokady nie zostanie zadeklarowane jako ostateczne, powinno to być klasa bezpieczna dla wątków. Jeśli ten wniosek jest błędny, popraw mnie, dziękuję.
Zobacz pytanie [this] (http://stackoverflow.com/questions/2101327/final-variable-andsynchronized-block-in-java). – Lion