Sobes.tech
Junior — Middle

Puoi fare esempi di strutture dati collezionabili che garantiscono la sicurezza dei thread?

sobes.tech AI

Risposta dell'AI

In Java, ci sono diverse collezioni che garantiscono la sicurezza nei thread:

  • Vector — un equivalente thread-safe di ArrayList, tutti i metodi sono sincronizzati.
  • Hashtable — un equivalente thread-safe di HashMap.
  • Collezioni del pacchetto java.util.concurrent:
    • ConcurrentHashMap — una tabella hash thread-safe ad alte prestazioni.
    • CopyOnWriteArrayList — una lista thread-safe, ottimale per scenari con letture frequenti e modifiche rare.
    • BlockingQueue e le sue implementazioni (LinkedBlockingQueue, ArrayBlockingQueue) — code thread-safe con operazioni di blocco.

Esempio di utilizzo di ConcurrentHashMap:

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

Queste strutture consentono di lavorare in modo sicuro con le collezioni da più thread senza sincronizzazione esterna.