Middle
Ktoré dátové štruktúry v Jave sú synchronizované a ktoré nie sú?
sobes.tech AI
Odpoveď od AI
V Jave niektoré dátové štruktúry sú synchronizované (vlákno-bezpečné), iné nie.
Synchronizované:
Vector— synchronizovaný ekvivalentArrayList.Hashtable— synchronizovaný ekvivalentHashMap.Stack— dedí odVector, takže je tiež synchronizovaný.- Kolekcie obalené pomocou
Collections.synchronizedList(),synchronizedMap()atď. - Triedy z balíka
java.util.concurrent, napríkladConcurrentHashMap,CopyOnWriteArrayList.
Nesynchronizované:
ArrayListLinkedListHashMapHashSet
Ak potrebujete použiť nesynchronizovanú kolekciu v prostredí s viacerými vláknami, môžete ju obaliť do synchronizovanej pomocou metód z Collections alebo použiť špeciálne triedy z java.util.concurrent.
Príklad:
List<String> list = Collections.synchronizedList(new ArrayList<>());