Middle
Кои структури от данни в Java са синхронизирани и кои не са?
sobes.tech AI
Отговор от AI
В Java някои структури от данни са синхронизирани (безопасни за нишки), а други — не.
Синхронизирани:
Vector— синхронизираният аналог наArrayList.Hashtable— синхронизираният аналог наHashMap.Stack— наследява отVector, затова също е синхронизиран.- Колекции, обвити чрез
Collections.synchronizedList(),synchronizedMap()и др. - Класове от пакета
java.util.concurrent, напримерConcurrentHashMap,CopyOnWriteArrayList.
Несинхронизирани:
ArrayListLinkedListHashMapHashSet
Ако трябва да използвате несинхронизирана колекция в многопоточна среда, можете да я обвиете в синхронизирана с помощта на методите от Collections или да използвате специализирани класове от java.util.concurrent.
Пример:
List<String> list = Collections.synchronizedList(new ArrayList<>());