Sobes.tech
Middle

Koje strukture podataka u Javi su sinhronizovane, a koje nisu?

sobes.tech АИ

Одговор од АИ

U Javi, neke strukture podataka su sinhronizovane (sigurne za niti), a neke nisu.

Sinhronizovane:

  • Vector — sinhronizovani ekvivalent ArrayList.
  • Hashtable — sinhronizovani ekvivalent HashMap.
  • Stack — nasleđuje od Vector, pa je takođe sinhronizovan.
  • Kolekcije obavijene pomoću Collections.synchronizedList(), synchronizedMap() itd.
  • Klase iz paketa java.util.concurrent, na primer, ConcurrentHashMap, CopyOnWriteArrayList.

Nesinhronizovane:

  • ArrayList
  • LinkedList
  • HashMap
  • HashSet

Ako želite da koristite nesinhronizovanu kolekciju u višepotthreadskoj sredini, možete je obaviti u sinhronizovanu pomoću metoda iz Collections ili koristiti specijalizovane klase iz java.util.concurrent.

Primer:

List<String> list = Collections.synchronizedList(new ArrayList<>());