Проблема здесь: если вообще, то безопасность потока была бы реализацией детализацией.Может случиться, что это сработает для одной версии JVM, но будет немного отличаться или «выключено» в другой версии java.util.HashMap.
Цитирование другой ответа :
При этом наиболее часто используемые реализации Map, в частности HashMap, не являются поточно-ориентированными.Добавление элементов из разных потоков может оставить карту в несогласованном состоянии, когда, например, вставленные элементы не могут быть восстановлены, хотя size () показывает, что они присутствуют.
Другими словами: даже если выСегодня у меня нет проблем, просто переключение на другую версию Java теоретически может привести к провалу вашего дизайна.
Имейте в виду: единственная гарантия, которую вы имеете, - это интерфейс Map.Вы используете контейнер , который имеет некоторую внутреннюю структуру, которая обновляется несколькими потоками.Если это случается с , а не , вызывает несоответствия, то это чистое совпадение .
Если чтение и запись в HashMap будут "просто работать" в многопоточных настройках, зачем вообще нужен ConcurrentHashMap?!