Sobes.tech
Junior — Middle

Можеш ли да наведеш примере колекционх структура података које обезбеђују безбедност у току?

sobes.tech АИ

Одговор од АИ

У Јави постоји неколико колекција које обезбеђују безбедност у мултитред окружењу:

  • 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");

Ове структуре омогућавају сигурну рад са колекцијама из више тредова без спољне синхронизације.