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

Работал ли с многопоточными коллекциями

Да, работал. В Java есть несколько потокобезопасных коллекций в java.util.concurrent:

  1. ConcurrentHashMap - потокобезопасная версия HashMap. Использует сегментирование (buckets) для уменьшения блокировок:
java
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
  1. CopyOnWriteArrayList - потокобезопасный список с копированием при записи:
java
CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
list.add("element");
  1. BlockingQueue (например, ArrayBlockingQueue, LinkedBlockingQueue) - очереди с блокирующими операциями:
java
BlockingQueue<String> queue = new ArrayBlockingQueue<>(10);
queue.put("item");
  1. ConcurrentLinkedQueue - неблокирующая очередь на CAS-операциях.

Важно понимать их отличия: ConcurrentHashMap обеспечивает безопасность на уровне сегментов, CopyOnWriteArrayList создает новую копию при изменении, а BlockingQueue блокирует потоки при пустой/полной очереди. Выбор зависит от конкретного сценария использования.

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

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

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

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