ConcurrentHashMap
是一个线程安全的集合,但如果ConcurrentHashMap.get("key")
正在执行,同时地图引用本身也会发生变化。这会产生意想不到的结果还是仍然会得到旧值(这是预期的)。
答案 0 :(得分:0)
如果正在更改地图参考,您仍然可以参考旧地图,它将从旧地图中获取,或者您对新地图的引用,它将从新地图中获取。
设置引用是一个原子操作,你永远不会有一个指向某个不存在的对象的引用。变更本身的可见性取决于您是否正确发布了新引用:如果您希望任何其他线程在更改后立即查看新引用,则它至少应该是易变的。