Sobes.tech
Junior — Middle

Ar galite pateikti pavyzdžių apie kolekcinės duomenų struktūras, užtikrinančias srauto saugumą?

sobes.tech AI

Atsakymas iš AI

Java yra keletas kolekcijų, kurios užtikrina kelių srautų saugumą:

  • Vector — saugi ArrayList atitikmenė, visi metodai yra sinchronizuoti.
  • Hashtable — saugi HashMap atitikmenė.
  • Kolekcijos iš java.util.concurrent paketo:
    • ConcurrentHashMap — aukštos našumo, saugi kelių srautų žymeklių lentelė.
    • CopyOnWriteArrayList — saugi kelių srautų sąrašas, optimalus dažniems skaitymams ir retoms keitimams.
    • BlockingQueue ir jos įgyvendinimai (LinkedBlockingQueue, ArrayBlockingQueue) — saugios kelių srautų eilės su blokuojančiomis operacijomis.

Pavyzdys naudojant ConcurrentHashMap:

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

Šios struktūros leidžia saugiai dirbti su kolekcijomis iš kelių srautų be išorinės sinchronizacijos.