我试图了解 ConcurrentHashMap 的工作原理。我找到了一个例子,但我无法理解。这是它的代码:
Map<String, Object> myData = new HashMap<String, Object>();
myData.put("A", 1);
myData.put("B", 2);
for (String key : myData.keySet()) {
myData.remove(key);
}
这将在运行时抛出异常ConcurrentModificationException。
但是,此代码使用ConcurrentHashMap将正常工作:
Map<String, Object> myData = new ConcurrentHashMap<String, Object>();
myData.put("A", 1);
myData.put("B", 2);
for (String key : myData.keySet()) }
myData.remove(key);
}
有人可以向我解释为什么 ConcurrentHashMap 允许在 HashMap 引发异常时删除键吗?谢谢
白衣染霜花
相关分类