Sobes.tech
Junior — Middle

Vai vari sniegt piemērus kolekcijas datu struktūrām, kas nodrošina pavedienu drošību?

sobes.tech AI

Atbilde no AI

Java ir vairākas kolekcijas, kas nodrošina daudzšūnu drošību:

  • Vector — daudzšūnu drošs ArrayList ekvivalents, visi metodes ir sinhronizētas.
  • Hashtable — daudzšūnu drošs HashMap ekvivalents.
  • Kolekcijas no java.util.concurrent pakotnes:
    • ConcurrentHashMap — augstas veiktspējas, daudzšūnu droša hash tabula.
    • CopyOnWriteArrayList — daudzšūnu drošs saraksts, optimāls biežām lasīšanām un retām izmaiņām.
    • BlockingQueue un tās realizācijas (LinkedBlockingQueue, ArrayBlockingQueue) — daudzšūnu drošas rindas ar bloķējošām operācijām.

Piemērs ar ConcurrentHashMap:

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

Šīs struktūras ļauj droši strādāt ar kolekcijām no vairākiem pavedieniem bez ārējas sinhronizācijas.