VIP20
本课程属于:015-多线程 编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

项目重构中的多线程优化实战

📚 共计 30 章节
01
重构的起点:为什么需要多线程优化?
从单线程到多线程的演进,项目重构中引入多线程的常见场景与痛点。
演进痛点
02
线程基础回顾:进程与线程
线程的生命周期,Java/Python中的线程创建方式。
生命周期创建
03
竞态条件与临界区
什么是竞态条件?如何识别代码中的临界区?经典银行转账Bug分析。
竞态临界区
04
锁机制入门:synchronized vs Lock
可重入锁、读写锁的使用场景与区别。
可重入读写锁
05
死锁的成因与排查
死锁四个必要条件,jstack/VisualVM排查,实际项目案例。
jstackVisualVM
06
线程池的优雅使用
为什么不用new Thread()?ThreadPoolExecutor参数详解,拒绝策略。
核心参数拒绝策略
07
线程池的监控与调优
如何监控线程池状态?核心/最大线程数计算,一次OOM事故。
监控OOM
08
并发容器:ConcurrentHashMap
从HashMap到ConcurrentHashMap,CopyOnWriteArrayList原理与场景。
CAS写时复制
09
原子类与CAS
AtomicInteger原理,CAS的ABA问题,LongAdder为何更快。
ABALongAdder
10
ThreadLocal的妙用
ThreadLocal原理,内存泄漏,Web请求上下文应用。
内存泄漏上下文
11
Future与CompletableFuture
异步编程演进,回调与组合,并行查询优化实战。
异步组合
12
Fork/Join框架
分治思想,工作窃取算法,大任务拆解案例。
分治工作窃取
13
读写锁与StampedLock
读写锁饥饿问题,StampedLock乐观读优化。
乐观读饥饿
14
信号量与CountDownLatch
限流场景信号量,多线程协作CountDownLatch/CyclicBarrier。
限流协作
15
并发编程三大特性
可见性、有序性、原子性,volatile底层原理。
volatileJMM
16
Happens-Before规则
JMM内存模型,8条Happens-Before规则详解。
JMM规则
17
伪共享与缓存行
CPU缓存架构,伪共享检测与解决,@Contended注解。
缓存行@Contended
18
锁优化技术
锁粗化、锁消除、偏向锁、轻量级锁、重量级锁升级过程。
锁升级偏向锁
19
无锁编程:Disruptor
Disruptor框架,RingBuffer原理,无锁队列实现思路。
RingBuffer无锁
20
Actor模型与响应式编程
Akka框架,响应式流规范,背压机制。
Akka背压
21
协程与纤程
Go Goroutine,Java虚拟线程(Project Loom),与线程对比。
GoroutineLoom
22
多线程性能测试
JMH基准测试,吞吐量与延迟权衡,科学压测方案。
JMH压测
23
分布式环境下的并发
分布式锁(Redis/Zookeeper),分布式事务并发控制。
分布式锁事务
24
数据库并发控制
乐观锁/悲观锁,MVCC机制,行锁与表锁优化。
MVCC行锁
25
消息队列与异步解耦
Kafka/RocketMQ并发场景应用,削峰填谷实践。
削峰解耦
26
重构中的线程安全设计
不可变对象,线程封闭,安全发布模式。
不可变安全发布
27
代码审查中的并发陷阱
常见并发Bug模式,Checklist清单。
Bug模式Checklist
28
生产环境问题排查
CPU飙升排查,线程Dump分析,内存泄漏定位。
CPUDump
29
多线程重构案例实战
高并发订单系统重构全过程:同步→异步,锁→无锁。
订单系统重构
30
总结与最佳实践
多线程优化10条军规,推荐书单与学习路径。
军规书单