1. 原子操作類
包: java.util.concurrent.atomic
- 基本類型:AtomicInteger/Long/Boolean/Reference
- 數組類型:AtomicIntegerArray/LongArray/ReferenceArray
- 字段更新器:Atomic*FieldUpdater
- 複合引用:AtomicMarkable/StampedReference
核心: CAS + Unsafe,無鎖並發
2. 鎖框架
包: java.util.concurrent.locks
- ReentrantLock(可重入、公平/非公平)
- ReadWriteLock / ReentrantReadWriteLock
- Condition(await/signal 替代 wait/notify)
- LockSupport(park/unpark 線程阻塞原語)
- StampedLock(樂觀讀、升級鎖)
核心: AQS (AbstractQueuedSynchronizer)
3. 並發集合
包: java.util.concurrent (頂層)
- ConcurrentHashMap (JDK8: CAS + synchronized + 紅黑樹)
- CopyOnWriteArrayList/Set (讀多寫少、快照迭代)
- ConcurrentLinkedQueue (無鎖隊列)
- BlockingQueue 族:ArrayBlockingQueue, LinkedBlockingQueue, PriorityBlockingQueue, DelayQueue, SynchronousQueue
- ConcurrentSkipListMap/Set (跳表、有序並發)
4. 任務執行框架
核心接口三角:
Callable<V> — 有返回值、可拋異常的任務
Executor / ExecutorService — 任務提交與生命週期管理
Future<V> — 異步結果獲取、取消、超時控制
關鍵實現: ThreadPoolExecutor, ScheduledThreadPoolExecutor, ForkJoinPool, CompletableFuture (JDK8)
5. 線程協調工具
包: java.util.concurrent (頂層)
- CountDownLatch — 一次性倒計時門闩
- CyclicBarrier — 可重用循環柵欄,支持 barrier action
- Semaphore — 信號量,資源池訪問控制
- Exchanger<V> — 雙線程數據交換點
- Phaser (JDK7) — 多階段、動態註冊的柵欄增強版