Мне нужен HashMap, доступный из нескольких потоков.
Есть два простых варианта: использование обычного HashMap и синхронизация на нем или использование ConcurrentHashMap.
Поскольку ConcurrentHashMap не блокирует операции чтения, он намного лучше подходит для моих нужд (почти исключительно чтение, почти никогда не обновляется). С другой стороны, я в любом случае ожидаю очень низкого параллелизма, поэтому блокировки не должно быть (только стоимость управления блокировкой).
Карта также будет очень маленькой (менее десяти записей), если это имеет значение.
По сравнению с обычным HashMap, насколько дороже операции чтения и записи (я предполагаю, что они есть)? Или ConcurrentHashMap всегда лучше, когда может быть даже умеренный уровень одновременного доступа, независимо от соотношения чтения/обновления и размера?