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.