Встречается на 2% собеседований по Java
Является ли метод put() в concrentHashMap в Java потокобезопасным
Да, метод put() в ConcurrentHashMap потокобезопасен. Он использует сегментирование (блокировка на уровне сегментов или отдельных бакетов в Java 8+), что позволяет нескольким потокам одновременно модифицировать разные части мапы без блокировки всей структуры.
Пример:
java
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key1", 1); // Потокобезопасно
map.put("key2", 2); // Другой поток может выполнять эту операцию параллельноНюансы:
- Гарантируется атомарность отдельных операций (
put(),get()), но не составных (например,putIfAbsent()+get()). - В Java 8+ используется CAS (Compare-And-Swap) для минимизации блокировок.
- Итераторы не бросают
ConcurrentModificationException, но могут отражать лишь частично актуальное состояние.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы