Я сталкиваюсь с java.util.concurrentmodificationException в классе org.xbill.dns.nioclient (в частности, в методе Processudekeys ()) библиотеки Dnsjava. Это исключение возникает, когда приложение находится под нагрузкой, и, по -видимому, оно связано с одновременными модификациями Selector.selectedKeys (). Метод ProcessreadyKeys () итерации по сравнению с селектором. SelectedKeys (), установленным для обработки готовых каналов. Тем не менее, кажется, что другой поток может изменить этот набор (зарегистрировав новый канал), в то время как ProcessEaryKeys () является итерационным, что приводит к одновременному модификации. Итератор при обработке. Тем не менее, это может быть инициировано: < /p>
Регистрирование новых каналов для селектора, в то время как ProcesrehadyKeys () работает.
Имеет ключевой процессор, который требует некоторого времени для выполнения, увеличивая вероятность того, что другой теме изменяет селектор. /> Вопрос: < /strong> < /p>
Каков рекомендуемый способ исправить это coundrentModificationException в классе Nioclient? Я уже обнаружил, что решение состоит в том, чтобы собрать ключи, которые будут удалены в отдельной коллекции, а затем удалить их после завершения итерации.
Есть ли какой -либо другой подход?
Подробнее здесь: https://stackoverflow.com/questions/796 ... egistering
Java.util.concurrentModificationException в Dnsjava nioclient при регистрации новых каналов ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Фатальное исключение: java.util.ConcurrentModificationException [закрыто]
Anonymous » » в форуме Android - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-