我有一个 Hashmap,出于速度原因,我不想要求锁定。假设我不介意陈旧的数据,同时更新和访问它会导致任何问题吗?
我的访问是获取,而不是遍历它,删除是更新的一部分。
最佳答案
是的,这会导致重大问题。一个例子是向 HashMap 添加值时可能发生的情况:这可能导致表的重新哈希,如果在另一个线程迭代冲突列表(哈希表“桶”)时发生这种情况,则该线程可能错误地找不到 map 中存在的键。 HashMap
对于并发使用是明确不安全的。
使用 ConcurrentHashMap
而是。
关于java - Hashmap 并发问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1003026/