【发布时间】:2021-02-20 20:21:21
【问题描述】:
calculate 方法在不同线程上执行多次。然后将其结果保存到HashMap。类似的东西:
void execute(){
...
map.put(key, calculate(key);
}
Data calculate(Key key){
...
}
我想防止对同一个键的多次执行,但我不想阻塞所有线程。理想的解决方案是将calculate 同步到Key。问题是Key不是最终的,我可以比较键并检查它们是否相等,但它们将是不同的对象。
我该如何解决这个问题?
【问题讨论】:
-
ConcurrentHashMap也可能是computeIfAbsent!?
标签: java hashmap synchronization