【发布时间】:2022-02-03 09:20:26
【问题描述】:
我有ConcurrentHashMap<String, AtomicReference<String>> 地图,我需要更新其中的一些值。
我写了以下代码:
map.compute(key) { _, value ->
value?.also { reference ->
reference.set(getNewValue())
}
}
它运作良好,但我不确定它是否是这种情况下的最佳解决方案。有没有更好的做法?
【问题讨论】:
-
compute确实已经在锁定下执行了计算,因此使用额外的AtomicReference<String>没有意义。您可以简单地使用ConcurrentHashMap<String, String>
标签: kotlin collections concurrency concurrenthashmap