Sobes.tech
Middle

Mely adatstruktúrák szinkronizáltak Java-ban, és melyek nem?

sobes.tech MI

Válasz az MI-től

Java-ban egyes adatszerkezetek szinkronizáltak (szálbiztosak), míg mások nem.

Szinkronizáltak:

  • Vector — szinkronizált megfelelője az ArrayList-nak.
  • Hashtable — szinkronizált megfelelője a HashMap-nak.
  • Stack — örökli a Vector-től, ezért szintén szinkronizált.
  • Gyűjtemények, amelyeket a Collections.synchronizedList(), synchronizedMap() stb. csomagolnak.
  • A java.util.concurrent csomag osztályai, például a ConcurrentHashMap, CopyOnWriteArrayList.

Nem szinkronizáltak:

  • ArrayList
  • LinkedList
  • HashMap
  • HashSet

Ha nem szinkronizált gyűjteményt szeretne több szálas környezetben használni, akkor azt a Collections metódusaival szinkronizálttá teheti, vagy a java.util.concurrent speciális osztályait használhatja.

Példa:

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