Учитывая ConcurrentHashMap<String, String>
содержит следующие записи:
this.map = new ConcurrentHashMap<>();
this.map.put("user", "user description");
this.map.put("session", "session description");
this.map.put("test", "test description");
Доступ к карте осуществляется несколькими потоками.
Как удалить все ключи, кроме session
атомарным способом?
Будет ли этот код работать, как я ожидаю, без условий гонки? Является ли forEach
метод атомарным? Есть ли другой способ добиться этого атомарно?
map.forEach((key, value) -> {
if (!key.equals("session")) {
map.remove(key);
}
});