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()); } }
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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