У меня есть ArrayLists, которые хранят много объектов, и объекты часто добавляются и удаляются из ArrayLists.Один поток работает со структурами данных и обновляет объекты ArrayList каждые 20 мс или около того.Другой поток пересекает ArrayLists и использует их элементы для рисования объектов (также каждые 20-30 мс).
Если списки ArrayLists пересекаются с использованием цикла for, IndexOutOfBoundsExceptions в изобилии.Если ArrayLists просматриваются с использованием итераторов, ConcurrentModificationExceptions в изобилии.Синхронизация списков массивов выглядит следующим образом:
<code>
List list = Collections.synchronizedList(new ArrayList());
synchronized(list) {
//use iterator for traversals
}
Не создает исключений, но существенно снижает производительность.Есть ли способ обойти эти ArrayList без исключения с помощью throw и без потери производительности?
СПАСИБО!