Я просто читал книгу "Чистый код" и наткнулся на это утверждение:
Когда Java была молода, Дуг Ли написал оригинальную книгу [8] Concurrent Программирование на Java. Наряду с книгой он разработал несколько потокобезопасной коллекции, которая позже стала частью JDK в
java.util.concurrent
пакет. Коллекции в этом пакете являются безопасными для многопоточных ситуаций, и они хорошо работают. Фактически,ConcurrentHashMap
реализация выполняется лучше, чем HashMap впочти во всех ситуациях. Это также позволяет одновременное одновременное читает и пишет, и у него есть методы, поддерживающие общий составной которые в противном случае не являются потокобезопасными. Если Java 5 - это среды развертывания, начните сConcurrentHashMap
Обратите внимание, что в приведенной цитате я использовал "[n]", где n - некоторое число, чтобы указать места, где автор предоставил ссылки, и, как вы видите, он не предоставил никаких ссылок для выделенной полужирной части.
Не то, чтобы я не верил этому утверждению, но я хотел бы знать подтверждающие доказательства этого утверждения. Итак, кто-нибудь знает какие-либо ресурсы, которые показывают статистику производительности для ConcurrentHashMap
и HashMap
? Или кто-нибудь может объяснить мне, почему ConcurrentHashMap быстрее, чем HashMap?
Я, вероятно, рассмотрю реализацию ConcurrentHashMap на работе, когда я сделаю перерыв, но сейчас я хотел бы услышать ответы от соратников SOers.