スレッドセーフであると主張されている Java クラスの例を以下に見つけました。スレッドセーフになる方法を誰か説明してもらえますか? クラスの最後のメソッドが、リーダー スレッドの同時アクセスに対して保護されていないことがはっきりとわかります。または、ここで何か不足していますか?
public class Account {
private Lock lock = new ReentrantLock();
private int value = 0;
public void increment() {
lock.lock();
value++;
lock.unlock();
}
public void decrement() {
lock.lock();
value--;
lock.unlock();
}
public int getValue() {
return value;
}
}