如果我在一个类中有一个ConcurrentHashMap实例,它将被多个线程修改和读取,那么我可能会这样定义:
public class My Class {
private volatile ConcurrentHashMap<String,String> myMap = new ConcurrentHashMap<String,String>();
...
}
将final
添加到myMap
字段会导致错误,指出我只能使用final
或volatile
。为什么它不能两者都是?