Middle
Quali strutture dati in Java sono sincronizzate e quali no?
sobes.tech AI
Risposta dell'AI
In Java, alcune strutture dati sono sincronizzate (thread-safe), altre no.
Sincronizzate:
Vector— equivalente sincronizzato diArrayList.Hashtable— equivalente sincronizzato diHashMap.Stack— eredita daVector, quindi è anch'esso sincronizzato.- Collezioni avvolte tramite
Collections.synchronizedList(),synchronizedMap(), ecc. - Classi del pacchetto
java.util.concurrent, ad esempio,ConcurrentHashMap,CopyOnWriteArrayList.
Non sincronizzate:
ArrayListLinkedListHashMapHashSet
Se si desidera utilizzare una collezione non sincronizzata in un ambiente multithread, è possibile avvolgerla in una versione sincronizzata usando i metodi di Collections o utilizzare classi specializzate di java.util.concurrent.
Esempio:
List<String> list = Collections.synchronizedList(new ArrayList<>());