假设我有一个确保线程安全(检索的完全并发)的映射,其中检索ConcurrentHashMap<String, Foo>的值是一些可变对象
class Foo {
public Object bar;
}
Foo值只会由单个线程构造,添加到地图一次,然后永远不会修改。操作可能如下所示:
Foo foo = new Foo();
foo.bar = "Test";
concurrentMap.add("key", foo);
在一个单独的线程中,工作是通过查看地图中的值来执行的(假设这里预先正确设置了这些值)
System.out.println(concurrentMap.get("key").bar);
Foo::bar在这种情况下访问有什么问题吗?是否存在无法按预期执行的情况?
九州编程
慕标琳琳
相关分类