Sobes.tech
Junior — Middle

Можеш ли да дадеш примери за колекционни структури от данни, които осигуряват безопасност при работа с нишки?

sobes.tech AI

Отговор от 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");

Тези структури позволяват безопасна работа с колекции от няколко потока без външна синхронизация.