1
我有这个代码,它具有在静态块中初始化的共享哈希映射。我不公开hashmap,它使用只读(get和containKey)。 我想确定这是否是线程安全的。Java HashMap只读线程安全
public class MyClass {
private static final Map<String, MyObject> myMap;
static {
myMap = new MyLoader().load()
}
public MyClass() {
if (containsKey(someKey)) {
// do something
}
myMap.get(something)
}
static boolean containsKey(String key) {
// do some other stuff
return myMap.containsKey(key)
}
}
只要没有线程正在修改映射(添加或删除键/值对,或变更现有值),而其他线程正在读取则线程安全。我没有包括突变关键对象,因为这会导致问题,无论线程是什么。 –
它没有被暴露,并且在类中没有被修改 –
该方法在写入映射的整个应用程序中调用'new MyLoader()。load()'_only_事物,并且它是否只写入一个电话? –