ComputeIfAbsent выбрасывает concurrentModificationExceptionJAVA

Программисты JAVA общаются здесь
Anonymous
ComputeIfAbsent выбрасывает concurrentModificationException

Сообщение Anonymous »


У меня есть Hashmap, в котором я поддерживаю сопоставление различных типов читателей с соответствующими реализациями классов Java. У меня есть многопоточный Java-сервер, поддерживающий 32 типа читателей.

Вы можете предположить, что каждые 30 секунд метод getReader() вызывается внутри тысячами объектов для каждого типа устройства чтения.

Каждый раз, когда я уменьшаю время обновления до 20 секунд, для некоторых читателей время от времени начинает выдаваться исключение ConcurrentModificationException. Ожидается ли это?

Какая разница при уменьшении периода времени?
class Mapper { Map READER = новый HashMap(); общедоступный статический Reader getReader(type) { Читатель Reader = READER.computeIfAbsent(type, k -> new ReaderImpl()); } }

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