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

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

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

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

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


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

📱 Java Developer | Чат
  • ❤ 14
  • 👍 9
  • 🔥 8
  • 👨‍💻 3
More from @java_tg
  1. Oct 3, 2026👩‍💻 Почему разработчики не умеют вовремя остановиться? Автор рассуждает, где проходит гр…
  2. Oct 2, 2026Post #4382
  3. Oct 2, 2026🔥3 млн ₽ за решение ИТ-задач Альфа-Банка Альфа-Банк запускает Альфа-Будущее Хакатон — для…
  4. Oct 2, 2026👩‍💻 Spring Boot + PostgreSQL с динамической схемой Практический кейс Pivot/EAV-архитекту…
  5. Oct 1, 2026👩‍💻 Что находится внутри OpenJDK Официальный репозиторий JDK — хорошее место, если хочет…
  6. Sep 30, 2026👩‍💻 Гексагональная архитектура в Spring Boot Автор статьи показывает альтернативу: вынес…
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 →