TGViewer
Java Developer Java Developer @java_tg · 14.8K subscribers
Post #3688 2.74K
❔ Вопрос с собеседования

За счёт чего достигается синхронизация в ConcurrentHashMap?

Ответ:
В ConcurrentHashMap, начиная с Java 8, синхронизация достигается за счёт сочетания атомарных операций и локальной синхронизации на уровне отдельных ячеек (bin) таблицы.

Когда происходит вставка, карта сначала пытается разместить элемент в нужной ячейке массива table с помощью атомарной операции CAS (Compare-And-Swap). Это безблокирующий способ записи: если ячейка пуста, значение вставляется безопасно без захвата монитора.

Если в ячейке уже есть другие элементы и простая вставка невозможна, используется synchronized, но только на уровне конкретного узла (Node). Это означает, что блокировка применяется локально, не затрагивая всю карту, и другие потоки могут параллельно работать с другими ячейками.


tags: #собеседование

📱 Java Developer | Чат
  • ❤ 16
  • 👍 11
  • 🔥 5
More from @java_tg
  1. Sep 27, 2026👩‍💻 Project Loom в 2026 году В статье разбирают актуальное состояние Loom: Virtual Threa…
  2. Sep 26, 2026Post #4372
  3. Sep 26, 2026Бесплатный ChatGPT для работы прямо в Telegram Личный ассистент для рабочих задач. Без зар…
  4. Sep 26, 2026👩‍💻 Как сделать Java-сервис устойчивее к сбоям Resilience4j добавляет готовые паттерны C…
  5. Sep 25, 2026Post #4369
  6. Sep 25, 2026👩‍💻 Миграция на Spring Boot 4, Spring 7 и JDK 25 В статье автор на примере демо-проекта…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →