📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.
По всем вопросам @evgenycarter
РКН clck.ru/3KoGeP
Post #3604
1.79K
🚀Разбираем принцип работы ConcurrentHashMap
Сегодня разберёмся, почему
В отличие от
📌 Основные особенности:
- Делит данные на сегменты (до JDK 8 или использует
- Чтение (
- Запись (
- Нет
Пример использования:
А вы часто используете
👉@BookJava
Сегодня разберёмся, почему
ConcurrentHashMap лучше подходит для многопоточной работы, чем HashMap, и как он работает внутри. В отличие от
HashMap, который не потокобезопасен и может приводить к бесконечным циклам при одновременной модификации, ConcurrentHashMap использует сегментированную блокировку, что позволяет работать с разными частями карты параллельно без полной блокировки всей структуры. 📌 Основные особенности:
- Делит данные на сегменты (до JDK 8 или использует
synchronized и CAS операции (начиная с JDK 8).- Чтение (
get()) не требует блокировки.- Запись (
put()) использует минимально возможные блокировки.- Нет
null ключей и значений (в отличие от HashMap).Пример использования:
import java.util.concurrent.ConcurrentHashMap;
public class Main {
public static void main(String[] args) {
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("Java", 1);
map.put("Python", 2);
map.put("C++", 3);
System.out.println(map.get("Java")); // 1
}
}
А вы часто используете
ConcurrentHashMap? Поделитесь в комментариях! 👇 👉@BookJava
- 👍 11
- 😁 1


