Sobes.tech
Junior — Middle

Können Sie Beispiele für sammelbare Datenstrukturen nennen, die Thread-Sicherheit gewährleisten?

sobes.tech KI

Antwort von AI

In Java gibt es mehrere Sammlungen, die Thread-Sicherheit gewährleisten:

  • Vector — ein thread-sicheres Äquivalent zu ArrayList, alle Methoden sind synchronisiert.
  • Hashtable — ein thread-sicheres Äquivalent zu HashMap.
  • Sammlungen aus dem Paket java.util.concurrent:
    • ConcurrentHashMap — eine hochleistungsfähige, thread-sichere Hashtabelle.
    • CopyOnWriteArrayList — eine thread-sichere Liste, ideal für Szenarien mit häufigen Lesezugriffen und seltenen Änderungen.
    • BlockingQueue und ihre Implementierungen (LinkedBlockingQueue, ArrayBlockingQueue) — thread-sichere Warteschlangen mit blockierenden Operationen.

Beispiel für die Verwendung von ConcurrentHashMap:

ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
Integer value = map.get("key");

Diese Strukturen ermöglichen es, sicher mit Sammlungen aus mehreren Threads zu arbeiten, ohne externe Synchronisation.