如题。我使用同步来保护多线程写入。但我想知道是否需要添加 volatile 来保护读取。(正如我们所知,我也可以使用同步来保护读取,但它会阻止读取和写入一致。更重要的是,如果我使用可重入锁。它也会阻止。)
private volatile BigDecimal cacheMiss = BigDecimal.ZERO;
public BigDecimal getCacheHit() {
return cacheHit;
}
public void increaseCacheMiss() {
synchronized (cacheMissLock) {
this.cacheMiss = this.cacheMiss.add(STEP);
}
}