タイトル通り。マルチスレッド書き込みを保護するために同期を使用しています。しかし、読み取りを保護するためにvolatileを追加する必要があるかどうかを知りたいです。(ご存知のように、同期を使用して読み取りを保護することもできますが、読み取りと書き込みを同時に防ぐことができます。さらに、再エントラエントロックを使用すると、それも防止されます。)
private volatile BigDecimal cacheMiss = BigDecimal.ZERO;
public BigDecimal getCacheHit() {
return cacheHit;
}
public void increaseCacheMiss() {
synchronized (cacheMissLock) {
this.cacheMiss = this.cacheMiss.add(STEP);
}
}