Sobes.tech
Junior — Middle

Kun je voorbeelden geven van collectieve datastructuren die threadveiligheid bieden?

sobes.tech AI

Antwoord van AI

In Java zijn er verschillende collecties die threadveiligheid bieden:

  • Vector — een thread-veilige versie van ArrayList, alle methoden zijn gesynchroniseerd.
  • Hashtable — een thread-veilige versie van HashMap.
  • Collecties uit het pakket java.util.concurrent:
    • ConcurrentHashMap — een hoogpresterende, thread-veilige hash-tabel.
    • CopyOnWriteArrayList — een thread-veilige lijst, ideaal voor scenario's met frequente lezingen en zeldzame wijzigingen.
    • BlockingQueue en zijn implementaties (LinkedBlockingQueue, ArrayBlockingQueue) — thread-veilige wachtrijen met blokkerende operaties.

Voorbeeld van gebruik van ConcurrentHashMap:

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

Deze structuren maken het mogelijk om veilig te werken met collecties uit meerdere threads zonder externe synchronisatie.