Sobes.tech
Middle

Kuras Java datu struktūras ir sinhronizētas un kuras nav?

sobes.tech AI

Atbilde no AI

Java dažās datu struktūras ir sinhronizētas (darbības drošas vairāku pavedienu vidū), bet citas — nē.

Sinhronizētas:

  • Vector — sinhronizēts ArrayList ekvivalents.
  • Hashtable — sinhronizēts HashMap ekvivalents.
  • Stack — manto no Vector, tāpēc arī ir sinhronizēts.
  • Kolekcijas, kas ietītas ar Collections.synchronizedList(), synchronizedMap() u.c.
  • Klases no java.util.concurrent pakotnes, piemēram, ConcurrentHashMap, CopyOnWriteArrayList.

Nesinhronizētas:

  • ArrayList
  • LinkedList
  • HashMap
  • HashSet

Ja vēlaties izmantot nesinhronizētu kolekciju daudzprocesu vidē, to var ietīt sinhronizētā versijā ar Collections metodēm vai izmantot specializētas java.util.concurrent klases.

Piemērs:

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