IdentityHashMap не является потокобезопасным. Его методы не синхронизированы, что делает его небезопасным для одновременного доступа нескольких потоков без внешних механизмов синхронизации.
Итераторы, возвращаемые IdentityHashMap, являются fail-fast, то есть они пытаются обнаружить одновременные изменения базовой коллекции во время итерации.
ConcurrentModificationExceptionЕсли тебе нужен потокобезопасный доступ к IdentityHashMap:
Collections.synchronizedMap()synchronized-блоки вокруг критических секцийConcurrentHashMapХотя fail-fast итераторы обеспечивают некоторую защиту от очевидных ошибок при одновременном изменении, они являются механизмом обнаружения, а не механизмом предотвращения. Не полагайся на ConcurrentModificationException для обеспечения потокобезопасности в продакшн-коде.
Поведение fail-fast итератора IdentityHashMap гарантирует, что все параллельные изменения будут обнаружены и всегда будут генерировать ConcurrentModificationException.
Новый — ещё не проверен сообществом
Вы