
第3章:并发编程(120题)并发编程是Java面试的分水岭。P6能答出线程状态、synchronized用法、线程池参数就行;P7要能讲清楚AQS、锁升级、ConcurrentHashMap扩容;P8需要深入到虚拟线程、结构化并发、JMM层面。我写这章的原则是:源码级讲原理,不堆概念。面试官视角:本章面试官最看重的3个点锁机制源码级理解——synchronized锁升级过程、AQS的CLH队列、ReentrantLock的公平锁实现,这些不是背能背出来的,必须看过源码。面试官问"synchronized和Lock的区别",你说"一个自动释放一个手动释放"只能及格,能说出"偏向锁→轻量级锁→重量级锁的升级路径和MarkWord的变化"才是P7水平线程池配置的经验之谈——核心线程数怎么算?CPU密集型设N+1,IO密集型设2N,但实际项目中靠压测调出来的数才靠谱。你能说清楚"我们项目16核机器,线程池核心线程设了32,因为每个请求平均耗时多少、QPS多少、需要多少并发线程"这种有数据支撑的回答,比直接背公式加分太多虚拟线程等新特性的认知——Java 21的虚拟线程不是"轻量级线程"一个词就能概括的。能说清楚虚拟线程的调度机制、pinned thread问题、适合什么场景不适合什么场景,说明你关注技术前沿且有实际思考