public class Test {
private volatile Map<String, String> map = null;
public void resetMap() { map = new ConcurrentHashMap<>(); }
public Map<String, String> getMap() { return map; }
}
换句话说,
map = new ConcurrentHashMap<>();
是否提供任何可见性保证?据我所见,
ConcurrentMap
提供的唯一保证是:在将对象作为键或值放入ConcurrentMap之前,线程中的操作发生在在另一个线程中访问或删除该对象后的操作之前。
那么java.util.concurrent中的其他线程安全集合(CopyOnWriteArrayList等)呢?