(1)并发编程基础与线程机制:了解多核时代并发编程的兴起背景及其对发挥CPU性能的核心价值。掌握并发与并行、进程与线程的本质区别,理解线程调度的基本原理。学习线程的创建方式(继承Thread、实现Runnable、实现Callable)、线程状态的完整生命周期(NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED)及其转换机制。掌握Thread核心API(sleep、yield、join、interrupt)的正确使用场景。
(2)Java内存模型(JMM)与三大特性:深入理解JMM的核心设计:主内存与工作内存的交互机制、内存间的操作协议。掌握并发编程的三大特性:原子性(Atomicity)、可见性(Visibility)、有序性(Ordering)的含义与实现原理。理解Happens-Before规则体系及其在保障线程安全中的作用。通过案例剖析指令重排序对并发代码的影响。
(3)线程安全与锁机制:掌握线程安全问题的本质成因与解决方案。深入学习synchronized关键字的底层原理:对象头Mark Word结构、锁的升级过程(偏向锁→轻量级锁→重量级锁)、锁消除与锁粗化优化。掌握显式锁(Lock)体系:ReentrantLock可重入锁、ReadWriteLock读写锁的特性与适用场景。对比synchronized与Lock的区别,学习公平锁与非公平锁、可中断锁、超时锁等高级特性。
(4)CAS原理与原子操作类:深入理解Compare-And-Swap(CAS)的硬件级实现原理及其在无锁并发中的核心地位。学习CAS的三大问题:ABA问题及AtomicStampedReference解决、循环时间长开销大、只能保证单个共享变量的原子性。掌握JUC原子类体系:AtomicInteger、AtomicLong、AtomicReference、AtomicIntegerArray、LongAdder的性能对比与选型。
(5)AQS抽象队列同步器:理解AQS作为JUC框架基石的核心设计思想:模板模式、CLH队列锁变体、同步状态管理。深入剖析AQS的内部结构(同步队列、条件队列)与资源共享方式(独占模式EXCLUSIVE、共享模式SHARED)。通过ReentrantLock源码分析AQS的抢锁、释放锁完整流程。
(6)线程间通信与协作:掌握wait/notify/notifyAll机制的正确使用模式及其与synchronized的配合。学习Condition接口提供的更精细化的线程等待与唤醒机制。掌握经典并发协作场景:生产者-消费者模式、阻塞队列应用、并发协作工具类(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)的原理与实战。
(7)JUC并发容器与数据结构:深入学习高并发场景下的容器选型与使用。掌握ConcurrentHashMap的分段锁/CAS+同步机制、put/扩容源码分析。学习CopyOnWriteArrayList的写时复制原理及其读多写少场景的应用。掌握阻塞队列BlockingQueue体系(ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、PriorityBlockingQueue、DelayQueue)的实现原理与应用。
(8)线程池原理与调优实践:理解线程池的核心价值:降低资源消耗、提高响应速度、提高线程可管理性。深入剖析ThreadPoolExecutor的七大核心参数(corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler)及其协同工作机制。掌握线程池的四种拒绝策略(AbortPolicy、CallerRunsPolicy、DiscardPolicy、DiscardOldestPolicy)及其适用场景。学习Executors框架创建的四种预定义线程池(FixedThreadPool、CachedThreadPool、SingleThreadExecutor、ScheduledThreadPool)的隐患与选型。实践掌握IO密集型、CPU密集型、混合型任务场景下的线程池参数估算方法。
(9)Fork/Join框架与分治编程:理解分治思想在并发编程中的应用。掌握Fork/Join框架的核心设计:工作窃取算法(Work-Stealing)、任务分解与结果合并。学习ForkJoinPool、ForkJoinTask、RecursiveTask/RecursiveAction的使用方法。实践完成大规模数据并行计算的Fork/Join实现。
(10)异步编程与CompleteableFuture:掌握Future模式的原理与应用场景。深入学习CompleteableFuture对异步编程的增强:异步任务的链式调用、组合、回调机制。掌握supplyAsync/thenApply/thenAccept/thenCompose/applyToEither/allOf/anyOf等核心API的应用。实践实现多个异步任务的有序编排与结果聚合。
(11)NIO与高性能网络编程:理解BIO的阻塞式模型在高并发下的局限。掌握NIO三大核心组件:Buffer缓冲区、Channel通道、Selector多路复用器的设计与协作。学习Reactor线程模型在NIO中的应用。掌握Netty高性能网络框架的核心优势:零拷贝机制、内存池化、高效的线程模型、无锁设计、责任链模式。实践实现基于Netty的推送系统或RPC通信框架。
(12)性能调优与问题诊断:掌握JVM内置命令行工具(jps、jstack、jmap、jstat、jinfo)的使用,分析线程状态与内存占用。学习JVisualVm、Arthas等可视化/在线诊断工具的线程分析、内存分析、CPU采样功能。掌握死锁的编码、定位与排查方法。学习高并发场景下的常见问题:内存溢出(OOM)分析、GC导致的系统卡顿排查、CPU 100%问题定位与解决。实践完成线上高并发系统的性能诊断与调优案例。