Встречается на 2% собеседований по Java

Как сделать HashMap многопоточной

Для многопоточной работы с HashMap в Java используйте ConcurrentHashMap — потокобезопасную реализацию интерфейса Map. Она обеспечивает высокую производительность за счёт сегментирования данных и блокировки на уровне сегментов, а не всей таблицы.

Пример:

java
ConcurrentHashMap<String, Integer> concurrentMap = new ConcurrentHashMap<>();
concurrentMap.put("key1", 1);
concurrentMap.putIfAbsent("key2", 2);

Альтернативы:

  • Collections.synchronizedMap(new HashMap<>()) — менее эффективен, т.к. блокирует всю мапу.
  • Hashtable — устаревший, медленный из-за полной синхронизации.

Важно: ConcurrentHashMap не блокирует операции чтения и поддерживает атомарные операции (например, computeIfAbsent).

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы