Sobes.tech
Junior — Middle

Come implementare una struttura dati Map sicura per i thread in un ambiente multithread?

sobes.tech AI

Risposta dell'AI

Per implementare una struttura dati Map thread-safe in Java, puoi usare la classe ConcurrentHashMap del pacchetto java.util.concurrent. Essa garantisce accesso e modifica efficienti dei dati in ambienti multithread senza necessità di sincronizzazione esterna.

Esempio di utilizzo:

import java.util.concurrent.ConcurrentHashMap;

ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();

// Aggiungi elemento
map.put("key", 1);

// Ottieni elemento
Integer value = map.get("key");

// Aggiornamento sicuro del valore
map.computeIfPresent("key", (k, v) -> v + 1);

In alternativa, si può usare Collections.synchronizedMap(new HashMap<>()), ma ConcurrentHashMap è generalmente preferito per alta concorrenza.