1
我有一個java.util.concurrent.ConcurrentHashMap
,我想如果它不存在,但如果有東西存在,我想也刪除它。例如:ConcurrentHashMap#putIfAbsent但刪除項目如果存在
ConcurrentHashMap<K, V> map = new ConcurrentHashMap<>();
// ...
V value = map.putIfAbsent(k, new V(/* ... */));
if (value != null) {
map.remove(k);
}
除了當然我希望它是線程安全的。
有沒有乾淨的方法來做到這一點?或者我應該只使用HashMap
並同步訪問?
我的理解是,update operations are synchronized anyway,我不希望有顯着的鎖爭用,所以添加更多的同步並不是什麼大不了的事。