ComputeIfAbsent выбрасывает concurrentModificationException ⇐ JAVA
ComputeIfAbsent выбрасывает concurrentModificationException
У меня есть Hashmap, в котором я поддерживаю сопоставление различных типов читателей с соответствующими реализациями классов Java. У меня есть многопоточный Java-сервер, поддерживающий 32 типа читателей.
Вы можете предположить, что каждые 30 секунд метод getReader() вызывается внутри тысячами объектов для каждого типа устройства чтения.
Каждый раз, когда я уменьшаю время обновления до 20 секунд, для некоторых читателей время от времени начинает выдаваться исключение ConcurrentModificationException. Ожидается ли это?
Какая разница при уменьшении периода времени?
class Mapper { Map READER = новый HashMap(); общедоступный статический Reader getReader(type) { Читатель Reader = READER.computeIfAbsent(type, k -> new ReaderImpl()); } }
У меня есть Hashmap, в котором я поддерживаю сопоставление различных типов читателей с соответствующими реализациями классов Java. У меня есть многопоточный Java-сервер, поддерживающий 32 типа читателей.
Вы можете предположить, что каждые 30 секунд метод getReader() вызывается внутри тысячами объектов для каждого типа устройства чтения.
Каждый раз, когда я уменьшаю время обновления до 20 секунд, для некоторых читателей время от времени начинает выдаваться исключение ConcurrentModificationException. Ожидается ли это?
Какая разница при уменьшении периода времени?
class Mapper { Map READER = новый HashMap(); общедоступный статический Reader getReader(type) { Читатель Reader = READER.computeIfAbsent(type, k -> new ReaderImpl()); } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Есть ли лучший способ определить, вернуло ли ComputeIfAbsent новое значение?
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-