Встречается на 2% собеседований по Java
В чем разница между synchronizedMap и ConcurrentHashMap
synchronizedMap и ConcurrentHashMap оба обеспечивают потокобезопасность, но по-разному:
- Блокировки:
synchronizedMapиспользует глобальную блокировку на весь Map при операциях (низкая производительность при конкуренции)ConcurrentHashMapиспользует сегментированные блокировки (блокируется только сегмент, где происходит операция)
-
Итераторы:
synchronizedMapбросаетConcurrentModificationExceptionпри изменении во время итерацииConcurrentHashMapпозволяет безопасно итерировать и изменять коллекцию одновременно
-
Null-значения:
synchronizedMapразрешает null-ключи и значенияConcurrentHashMapзапрещает null
Пример:
java
// synchronizedMap
Map<String, String> syncMap = Collections.synchronizedMap(new HashMap<>());
// ConcurrentHashMap
ConcurrentHashMap<String, String> concMap = new ConcurrentHashMap<>();Используйте ConcurrentHashMap для высоконагруженных многопоточных приложений, synchronizedMap - для простых случаев с низкой конкуренцией.

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