Является ли итерация значений ConcurrentHashMap потокобезопасной?

В javadoc для ConcurrentHashMap указано следующее:

Операции получения (включая получение) обычно не блокируются, поэтому могут перекрываться с операциями обновления (включая размещение и удаление). Извлечения отражают результаты последних завершенных операций обновления, удерживаемых с момента их начала. Для агрегированных операций, таких как putAll и clear, одновременные извлечения могут отражать вставку или удаление только некоторых записей. Так же, Итераторы и перечисления возвращают элементы, отражающие состояние хеш-таблицы в какой-то момент во время или после создания итератора / перечисления. Они не генерируют исключение ConcurrentModificationException. Однако итераторы предназначены для одновременного использования только одним потоком.

Что это означает? Что произойдет, если я попытаюсь выполнить итерацию карты с двумя потоками одновременно? Что произойдет, если я добавлю или удалю значение с карты во время итерации?

142
задан Steve Armstrong 15 February 2011 в 17:36
поделиться