Как я могу перебрать ConcurrentSkipListMap, сохраняя слабую согласованность
Предположим, у меня есть несколько потоков, добавляющих и удаляющих записи из ConcurrentSkipListMap
, У меня есть другой поток, который в предопределенные периоды работает над сбором и обновляет его данные с помощью итератора. Как это можно сделать с учетом одновременного доступа. как перебрать? Поддерживает ли итератор слабую согласованность?
1 ответ
Решение
Прочитайте Javadoc:
Итераторы слабо согласованы, возвращая элементы, отражающие состояние карты в некоторой точке во время или после создания итератора. Они не бросают
ConcurrentModificationException
и может выполняться одновременно с другими операциями.