Не уверен, есть ли необходимость использовать синхронизацию с concurrentMap.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Не уверен, есть ли необходимость использовать синхронизацию с concurrentMap.

Сообщение Anonymous »

Я рассмотрел реализацию карты карт в Java и заметил чрезмерное использование синхронизации:

Код: Выделить всё

public class NestedMap {
private Map data = new ConcurrentHashMap();

synchronized public V put(K1 k1, K2 k2, V v) {
Map map = data.computeIfAbsent(k1, key -> new ConcurrentHashMap());
return map.put(k2, v);
}

synchronized public V get(K1 k1, K2 k2) {
Map map = data.get(k1);
if (null == map) return null;
return map.get(k2);
}

synchronized public V remove(K1 k1, K2 k2) {
Map map = data.get(k1);
if (null == map) return null;
return map.remove(k2);
}

synchronized public void remove(K1 k1) {
data.remove(k1);
}

synchronized public Map get(K1 k1) {
return this.data.get(k1);
}

synchronized public V computeIfAbsent(K1 k1, K2 k2, Function

Подробнее здесь: [url]https://stackoverflow.com/questions/79202231/unsure-if-theres-a-need-using-synchronized-with-concurrentmap[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»