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,发现它是空的,然后去为它设置一个值,但是此时另一个线程进来并检查它也发现值是空的,所以它设置自己的值所以第一个线程将值绑定到它的名称,然后第二个线程重新绑定到它自己的名称覆盖第一个?
或者有什么方法可以使这个线程安全?