Нюансы Java разработки

Блог о Java разработке и в деталях описывает наиболее интересные темы

Посты с тегом «ConcurrentHashMap»


Как использовать ConcurrentHashMap в Java

До Java 1.5, если вам нужна была реализация Map, которую можно безопасно использовать в многопоточной Java-программе, у вас были только Hashtable или synchronized Map, потому что HashMap НЕ безопасен.

Оглавление ✓Введение ✓Как реализован ConcurrentHashMap в Java ✓Некоторые важные свойства ConcurrentHashMap ✓Когда следует использовать ConcurrentHashMap в Java Введение ConcurrentHashMap был представлен как альтернатива Hashtable в Java 1.5 как часть пакета многопоточности. C ConcurrentHashMap у вас есть лучший выбор, не только потому, что это безопасно в многопоточном окружении, но так же предоставляет лучшую производительность по сравнению с Hashtable и synchronizedMap. ConcurrentHashMap работает производительнее, потому что блокирует лишь часть Map. Позволяет одновременные операции чтения и в тоже время обеспечивает целостность, синхронизируя операции записи. Как реализован ConcurrentHashMap в Java ConcurrentHashMap был разработан как альтернатива Hashtable и обеспечивает всю функциональность, предоставляемой Hashtable, с дополнительными возможностями, называемые уровень одновременности (concurrency level). ConcurrentHashMap позволяет множеству читателей одновременное чтение без использования блокировок. Это достигается разделением Map на различные части, основываясь на «уровне одновременности» и блокированием только части Map при обновлении. По умолчанию, уровень одновременности равен 16, и соответственно Map разделяется на 16 частей и каждая часть управляется отдельной блокировкой. Это означает, что 16 потоков могут работать с Map одновременно, пока они работают с разными частями Map. Это делает ConcurrentHashMap высокопроизводительным, в тоже время не ухудшая потоко-безопасность. Некоторые важные свойства ConcurrentHashMap Но существует особенности. Поскольку операции обновления не синхронизирующие, одновременная выборка данных может ... Читать далее


Подписаться

Поиск по сайту