下面的代码有什么问题?
private Map<Integer, Integer> aMap = new ConcurrentHashMap<Integer, Integer>();
Record rec = records.get(id);
if (rec == null) {
rec = new Record(id);
records.put(id, rec);
}
return rec;
- 上面的代码不是线程安全的吗?在这种情况下我为什么要
putIfAbsent
在这里使用? - 锁定仅适用于更新。在检索的情况下,它允许完全并发。这个说法是什么意思?