多个条目的 ConcurrentHashMap 更新

ConcurrentHashMap update of multiple entries

我有一种情况,在 ConcurrentHashMap 中我存储了一些属性,如 ip 地址和端口或罚款和代码 - 2 个或更多相互连接的条目。

现在我想自动更新这 2 个条目以避免读取不正确的对。

所以现在我正在考虑它,不知道简单的解决方案。

我可以用 ReadWriteLock 块包装 get/put 方法,但感觉不对 :) 我没有使用 ConcurrentHashMap 来编写额外的锁。

另一种选择是将这些属性合并为一个。现在我倾向于那个选项。

其他选项是在值对象中有版本,但我每次都需要检查它,我不想这样做:)

这个问题还有其他解决方案吗?

此致

我想,你可以使用不同的方式,没有 ConcurrentHashMap.

如果你想添加一些东西,比如你的操作的优先级。例如:更新操作高于获取操作,您可以使用 PriorityBlockingQueue,例如:HashSet 来存储对象而不重复。那你确定你的实际属性是最新的。

您不能自动更新多个条目。您有两个选择:

  • 使用带有外部同步的简单 HashMap

  • Map 值使用不同的类型,这是一对必须一起考虑的项目。