JNDI ツリー内のオブジェクトはスレッドセーフになりますか?
たとえば、次のようなことをしたとしましょう。
疑似コード:
String value = null;
try {
value = context.lookup("someValue")
} catch (Exception ignored) {}
if (value == null) {
value = "My name is "+currentThread.getName()
context.bind("someValue", value);
}
ここで、最初のスレッドが someValue をチェックし、それが空であることを確認してから値を設定する可能性がありますが、この時点で別のスレッドが入ってきてチェックし、それも値が空であることが判明したため、独自の値を設定します。最初のスレッドは値をその名前にバインドし、2 番目のスレッドは最初の名前を上書きして独自の名前に再バインドしますか?
または、これをスレッドセーフにする方法はありますか?