Trong bài giảng này, chúng ta sẽ phân tích vì sao các bộ sưu tập thông thường (
ArrayList,
HashMap) nguy hiểm trong môi trường đa luồng, và những lựa chọn thay thế an toàn cho luồng mà gói
java.util.concurrent cung cấp:
ConcurrentHashMap,
CopyOnWriteArrayList,
ConcurrentLinkedQueue, các cấu trúc dựa trên skip-list và
BlockingQueue. Chúng ta sẽ bàn về các thao tác nguyên tử như
merge,
putIfAbsent,
computeIfAbsent, so sánh với
Collections.synchronizedMap, xem các ví dụ thực tế và những lỗi thường gặp (iterator nhất quán yếu, chuỗi thao tác không nguyên tử, v.v.).