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