培训对象:适合具备Java基础开发经验,希望系统掌握高并发编程核心技术、向高性能应用开发方向进阶的Java开发人员。
培训目标:完成本课程后,学员将能够深入理解Java内存模型与并发编程的底层机制。熟练掌握线程池配置与调优、JUC并发工具(锁、原子类、并发容器)的使用,掌握分布式锁与分布式事务的实现方案。具备独立设计高并发系统、排查并发问题的实战能力。
培训内容:
(1)Java内存模型:深入理解Java内存模型(JMM)的核心概念(主内存、工作内存、原子性、可见性、有序性)。掌握volatile关键字的语义与实现原理。了解happens-before规则。
(2)synchronized锁机制:深入理解synchronized的底层实现原理(对象头Mark Word、锁升级过程)。掌握synchronized在方法、代码块中的使用。理解锁优化技术(偏向锁、轻量级锁、重量级锁、锁消除、锁粗化)。
(3)JUC显式锁:掌握Lock接口与ReentrantLock的使用,理解可重入性、公平锁、可中断锁的特性。学习ReentrantReadWriteLock读写锁的应用场景。理解LockSupport与Condition的使用。
(4)原子操作类:掌握AtomicInteger、AtomicLong、AtomicReference等原子类的使用。深入理解CAS(Compare-And-Swap)的原理与ABA问题解决方案。了解LongAdder与AtomicLong的性能对比。
(5)并发容器:掌握ConcurrentHashMap的实现原理(分段锁/CAS+同步机制)与使用。学习CopyOnWriteArrayList的写时复制机制及其读多写少场景的应用。掌握BlockingQueue阻塞队列的使用(ArrayBlockingQueue、LinkedBlockingQueue)。
(6)线程池原理与配置:深入理解ThreadPoolExecutor的七大核心参数(corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler)。掌握线程池的四种拒绝策略及其适用场景。学习线程池的监控与动态调整。
(7)Fork/Join框架:理解分治思想在并发编程中的应用,掌握Fork/Join框架的核心设计(工作窃取算法)。学习ForkJoinPool、ForkJoinTask、RecursiveTask/RecursiveAction的使用。
(8)分布式锁:掌握基于Redis实现分布式锁的多种方案(SETNX、Redisson)。学习基于ZooKeeper实现分布式锁的原理(临时顺序节点)。理解分布式锁的可靠性要求(互斥性、死锁预防、容错性)。
(9)分布式事务:理解分布式事务的核心挑战与理论基础(CAP理论、BASE理论)。掌握两阶段提交(2PC)与三阶段提交(3PC)的原理。学习TCC补偿事务、可靠消息最终一致性、最大努力通知等柔性事务方案。
(10)秒杀系统设计:学习高并发秒杀系统的设计要点:系统拆分、页面静态化、CDN加速、缓存预热、库存防超卖、异步削峰、限流熔断。掌握Redis+Lua实现原子性扣减库存。
(11)并发性能测试:学习使用JMeter进行并发压力测试,分析系统吞吐量与响应时间。掌握性能瓶颈定位方法(CPU、内存、I/O、锁竞争)。了解常用性能分析工具(VisualVM、Arthas、JProfiler)。
(12)综合项目实战:完成一个完整的高并发应用项目(如秒杀系统、抢红包系统)。涵盖并发设计、线程池配置、分布式锁、异步处理、性能压测的全流程。