In dieser Vorlesung schauen wir uns an, warum gewöhnliche Collections (
ArrayList,
HashMap) in einer Multithreading-Umgebung gefährlich sind und welche thread-sicheren Alternativen das Paket
java.util.concurrent bietet:
ConcurrentHashMap,
CopyOnWriteArrayList,
ConcurrentLinkedQueue, Strukturen auf Basis von Skip-Lists und
BlockingQueue. Wir besprechen atomare Operationen wie
merge,
putIfAbsent,
computeIfAbsent, vergleichen mit
Collections.synchronizedMap, betrachten praktische Beispiele und typische Fehler (schwach konsistente Iteratoren, nicht atomare Operationssequenzen usw.).