Sobes.tech
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ý ekvivalent ArrayList.
  • Hashtable — synchronizovaný ekvivalent HashMap.
  • Stack — dedí od Vector, takže je tiež synchronizovaný.
  • Kolekcie obalené pomocou Collections.synchronizedList(), synchronizedMap() atď.
  • Triedy z balíka java.util.concurrent, napríklad ConcurrentHashMap, CopyOnWriteArrayList.

Nesynchronizované:

  • ArrayList
  • LinkedList
  • HashMap
  • HashSet

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<>());