Junior — Middle
Czy możesz podać przykłady kolekcjonowalnych struktur danych zapewniających bezpieczeństwo wątków?
sobes.tech AI
Odpowiedź od AI
W Javie istnieje kilka kolekcji zapewniających bezpieczeństwo wątkowe:
Vector— bezpieczny wątkowo odpowiednikArrayList, wszystkie metody są synchronizowane.Hashtable— bezpieczny wątkowo odpowiednikHashMap.- Kolekcje z pakietu
java.util.concurrent:ConcurrentHashMap— wysokowydajna, bezpieczna wątkowo tabela haszująca.CopyOnWriteArrayList— bezpieczna wątkowo lista, optymalna dla scenariuszy z częstym odczytem i rzadkimi modyfikacjami.BlockingQueuei jej implementacje (LinkedBlockingQueue,ArrayBlockingQueue) — bezpieczne wątkowo kolejki z operacjami blokującymi.
Przykład użycia ConcurrentHashMap:
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
Integer value = map.get("key");
Te struktury pozwalają bezpiecznie pracować z kolekcjami z wielu wątków bez konieczności zewnętrznej synchronizacji.