次のクラスがあり、頻繁に読み取られますが、たまにしか書き込まれないとしましょう。マルチスレッドのウェブアプリで使用されるため、スレッドセーフである必要があります。
public class Foo {
private volatile String foo;
public String getFoo() {
return foo;
}
public synchronized String setFoo(String in) {
this.foo = in;
}
}
Java Concurrency(http://www.ibm.com/developerworks/java/library/j-jtp06197/index.html)は、これが読み取りアクセスを改善しながら書き込みアクセスを保護するための脆弱な方法であると述べています。このパターンのより強力な代替手段は何ですか?または、読み取りが多い環境でfooを変更可能にする必要がある場合は、別の方法がありますか?ありがとうございました。