Java面试宝典:从基础到架构6
第6章 JUC并发工具与线程池
面试频率:★★★★★
面试官视角:volatile和CAS是并发编程的地基,线程池是并发编程的标配。如果候选人说不清volatile的内存屏障和happens-before,线程池的execute流程和拒绝策略,基本可以判定并发能力停留在"用synchronized就行"的阶段。
章节导读
- 6.1 volatile——可见性与有序性的轻量级保障
- 6.2 CAS与原子类——无锁并发的基石
- 6.3 JUC并发工具——CountDownLatch/CyclicBarrier/Semaphore
- 6.4 线程池核心——ThreadPoolExecutor源码剖析
- 6.5 线程池配置与动态调优
- 6.6 Fork/Join框架与并行流
- 6.7 面试连环追问与常见坑点
6.1 volatile——可见性与有序性的轻量级保障
6.1.1 JMM内存模型基础
Java内存模型(JMM)规定:所有变量存储在主内存,每个线程有自己的工作内存(对应CPU缓存L1/L2/L3)。线程对变量的读写在工作内存中进行,修改不会立即同步到主内存。
主内存(Main Memory) │ ├─