一、原子类与 CAS
AtomicInteger 等靠 CAS(Compare-And-Swap)无锁更新。问题:ABA(值被改回原值误判),用 AtomicStampedReference 加版本号解决;另有自旋开销与只能保一个变量。
二、三大并发工具
| 工具 | 语义 | 典型场景 |
|---|---|---|
| CountDownLatch | 倒数到 0 才放行(一减到底) | 等 N 个任务完成 |
| CyclicBarrier | 等 N 个线程到齐再一起跑(可重用) | 多线程分阶段计算 |
| Semaphore | 限同时访问的许可数 | 限流、连接池 |
三、其他
Exchanger:两个线程交换数据;Phaser:更灵活的屏障,可动态注册;LockSupport:底层阻塞原语(park/unpark)。
这些工具让”等待/协作”标准化,比手写 wait/notify 更可控、可读性更好。