Junior — Middle
Poți oferi exemple de structuri de date colecționabile care asigură siguranța thread-urilor?
sobes.tech AI
Răspuns de la AI
În Java, există mai multe colecții care asigură siguranța în medii multi-thread:
Vector— un echivalent thread-safe alArrayList, toate metodele sunt sincronizate.Hashtable— un echivalent thread-safe alHashMap.- Colecții din pachetul
java.util.concurrent:ConcurrentHashMap— un tabel hash sigur pentru multi-thread și cu performanță ridicată.CopyOnWriteArrayList— o listă sigură pentru multi-thread, optimă pentru scenarii cu citiri frecvente și modificări rare.BlockingQueueși implementările sale (LinkedBlockingQueue,ArrayBlockingQueue) — cozi sigure pentru multi-thread cu operații de blocare.
Exemplu de utilizare a ConcurrentHashMap:
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
Integer value = map.get("key");
Aceste structuri permit lucrul în siguranță cu colecțiile din mai multe fire de execuție fără sincronizare externă.