Sobes.tech
Back to questions
Junior — Middle
75

Можешь привести примеры коллекционных структур данных, обеспечивающих потокобезопасность?

Answer from AI

sobes.tech AI

В Java есть несколько коллекций, которые обеспечивают потокобезопасность:

  • Vector — потокобезопасный аналог ArrayList, все методы синхронизированы.
  • Hashtable — потокобезопасный аналог HashMap.
  • Коллекции из пакета java.util.concurrent:
    • ConcurrentHashMap — высокопроизводительная потокобезопасная хэш-таблица.
    • CopyOnWriteArrayList — потокобезопасный список, оптимальный для сценариев с частыми чтениями и редкими изменениями.
    • BlockingQueue и его реализации (LinkedBlockingQueue, ArrayBlockingQueue) — потокобезопасные очереди с блокирующими операциями.

Пример использования ConcurrentHashMap:

ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
Integer value = map.get("key");

Эти структуры позволяют безопасно работать с коллекциями из нескольких потоков без внешней синхронизации.