cbe*_*der 0 java thread-safety
我有一个Map<Sting, List<Object>>可以从多个 Java 类实例访问的。这Map有时会由单独的线程偶尔更新。实例永远不会写入任何对象。他们只是获取Lists 之一并读取其中的对象。
我应该为此担心线程安全吗?只有一个线程在写。
一句话——是的。
根据实现,put对 a 的 ingMap可以改变其内部结构,这可能导致并发get操作具有未定义的行为(例如,对于HashMaps,我见过get如果put中间“中断”它就永远不会返回的情况)。
您应该使用Map线程安全的实现,例如ConcurrentHashMap.