Middle
Ce structuri de date în Java sunt sincronizate și care nu sunt?
sobes.tech AI
Răspuns de la AI
În Java, unele structuri de date sunt sincronizate (sigure pentru fire de execuție), iar altele nu.
Sincronizate:
Vector— echivalent sincronizat alArrayList.Hashtable— echivalent sincronizat alHashMap.Stack— moștenește de laVector, deci este de asemenea sincronizat.- Colecții învelite prin
Collections.synchronizedList(),synchronizedMap()etc. - Clase din pachetul
java.util.concurrent, de exemplu,ConcurrentHashMap,CopyOnWriteArrayList.
Nesincronizate:
ArrayListLinkedListHashMapHashSet
Dacă trebuie să folosiți o colecție nesincronizată într-un mediu multi-thread, o puteți înveli într-una sincronizată folosind metode din Collections sau puteți folosi clase specializate din java.util.concurrent.
Exemplu:
List<String> list = Collections.synchronizedList(new ArrayList<>());