W tej lekcji omówimy, dlaczego zwykłe kolekcje (
ArrayList,
HashMap) są niebezpieczne w środowisku wielowątkowym i jakie alternatywy bezpieczne względem wątków oferuje pakiet
java.util.concurrent:
ConcurrentHashMap,
CopyOnWriteArrayList,
ConcurrentLinkedQueue, struktury oparte na skip list oraz
BlockingQueue. Omówimy operacje atomowe, takie jak
merge,
putIfAbsent,
computeIfAbsent, porównamy z
Collections.synchronizedMap, rozważymy praktyczne przykłady i typowe błędy (słabo spójne iteratory, nieatomowe sekwencje operacji itp.).