Синхронизация этих операций не приносит пользы здесь - это фактически ухудшает производительность, если вам не нужна синхронизация.
Причина ConcurrentHashMap
была создана, это синхронизированные карты (либо реализованы вручную, как в вопрос или созданный обычным способом с Collections.synchronizedMap(map)
) показывают плохую производительность при доступе к множеству потоков. Блокировать операции «Поместить и получить», чтобы все остальные потоки должны были ждать и не могли одновременно получать доступ к карте. ConcurrentHashMap
- как следует из названия - позволяет одновременный доступ, с другой стороны. Вы теряете это преимущество, если добавляете синхронизацию.