1 多线程基础概念 #
mindmap
id1[多线程基础概念]
id1-1[进程与线程]
id1-2[进程定义与特征]
id1-3[线程定义与特征]
id1-4[进程与线程的区别]
id1-5[多线程的优势与劣势]
id1-6[Java线程模型]
id1-7[用户级线程]
id1-8[内核级线程]
id1-9[Java线程实现原理]
id1-10[线程生命周期]
id1-11[并发与并行]
id1-12[并发概念]
id1-13[并行概念]
id1-14[并发与并行的区别]
id1-15[多核处理器与并行计算]
进程与线程
进程定义与特征
线程定义与特征
进程与线程的区别
多线程的优势与劣势
Java线程模型
用户级线程
内核级线程
Java线程实现原理
线程生命周期
并发与并行
并发概念
并行概念
并发与并行的区别
多核处理器与并行计算
2 线程创建与管理 #
线程创建方式
继承Thread类
实现Runnable接口
实现Callable接口
使用Executor框架
线程状态管理
NEW状态
RUNNABLE状态
BLOCKED状态
WAITING状态
TIMED_WAITING状态
TERMINATED状态
线程控制方法
start 方法
run 方法
sleep 方法
yield 方法
join 方法
interrupt 方法
mindmap
id2[线程创建与管理]
id2-1[线程创建方式]
id2-2[继承Thread类]
id2-3[实现Runnable接口]
id2-4[实现Callable接口]
id2-5[使用Executor框架]
id2-6[线程状态管理]
id2-7[NEW状态]
id2-8[RUNNABLE状态]
id2-9[BLOCKED状态]
id2-10[WAITING状态]
id2-11[TIMED_WAITING状态]
id2-12[TERMINATED状态]
id2-13[线程控制方法]
id2-14[start 方法]
id2-15[run 方法]
id2-16[sleep 方法]
id2-17[yield 方法]
id2-18[join 方法]
id2-19[interrupt 方法]
3 线程同步机制 #
mindmap
id3[线程同步机制]
id3-1[同步基础]
id3-2[临界区概念]
id3-3[竞态条件]
id3-4[数据竞争]
id3-5[内存可见性问题]
id3-6[synchronized关键字]
id3-7[同步方法]
id3-8[同步代码块]
id3-9[对象锁与类锁]
id3-10[锁的重入性]
id3-11[volatile关键字]
id3-12[内存语义]
id3-13[可见性保证]
id3-14[禁止指令重排序]
id3-15[使用场景与限制]
同步基础
临界区概念
竞态条件
数据竞争
内存可见性问题
synchronized关键字
同步方法
同步代码块
对象锁与类锁
锁的重入性
volatile关键字
内存语义
可见性保证
禁止指令重排序
使用场景与限制
4 锁机制 #
重入锁 ReentrantLock
公平锁与非公平锁
条件变量 Condition
锁的获取与释放
性能比较
读写锁 ReadWriteLock
读锁与写锁
锁降级
使用场景
性能优化
其他锁类型
StampedLock
自旋锁
偏向锁
轻量级锁
mindmap
id4[锁机制]
id4-1[重入锁 ReentrantLock]
id4-2[公平锁与非公平锁]
id4-3[条件变量 Condition]
id4-4[锁的获取与释放]
id4-5[性能比较]
id4-6[读写锁 ReadWriteLock]
id4-7[读锁与写锁]
id4-8[锁降级]
id4-9[使用场景]
id4-10[性能优化]
id4-11[其他锁类型]
id4-12[StampedLock]
id4-13[自旋锁]
id4-14[偏向锁]
id4-15[轻量级锁]
5 线程间通信 #
mindmap
id5[线程间通信]
id5-1[等待/通知机制]
id5-2[wait 方法]
id5-3[notify 方法]
id5-4[notifyAll 方法]
id5-5[生产者-消费者模式]
id5-6[阻塞队列]
id5-7[ArrayBlockingQueue]
id5-8[LinkedBlockingQueue]
id5-9[PriorityBlockingQueue]
id5-10[SynchronousQueue]
id5-11[信号量 Semaphore]
id5-12[计数信号量]
id5-13[进制信号量]
id5-14[资源池管理]
id5-15[限流应用]
等待/通知机制
wait 方法
notify 方法
notifyAll 方法
生产者-消费者模式
阻塞队列
ArrayBlockingQueue
LinkedBlockingQueue
PriorityBlockingQueue
SynchronousQueue
信号量 Semaphore
计数信号量
进制信号量
资源池管理
限流应用
6 并发集合 #
并发List
CopyOnWriteArrayList
写时复制机制
适用场景
并发Set
CopyOnWriteArraySet
ConcurrentSkipListSet
性能比较
并发Map
ConcurrentHashMap
ConcurrentSkipListMap
分段锁机制
弱一致性
mindmap
id6[并发集合]
id6-1[并发List]
id6-2[CopyOnWriteArrayList]
id6-3[写时复制机制]
id6-4[适用场景]
id6-5[并发Set]
id6-6[CopyOnWriteArraySet]
id6-7[ConcurrentSkipListSet]
id6-8[性能比较]
id6-9[并发Map]
id6-10[ConcurrentHashMap]
id6-11[ConcurrentSkipListMap]
id6-12[分段锁机制]
id6-13[弱一致性]
7 线程池 #
mindmap
id7[线程池]
id7-1[Executor框架]
id7-2[Executor接口]
id7-3[ExecutorService接口]
id7-4[ScheduledExecutorService]
id7-5[Future与Callable]
id7-6[线程池类型]
id7-7[FixedThreadPool]
id7-8[CachedThreadPool]
id7-9[SingleThreadExecutor]
id7-10[ScheduledThreadPool]
id7-11[线程池配置]
id7-12[核心线程数]
id7-13[最大线程数]
id7-14[队列选择]
id7-15[拒绝策略]
Executor框架
Executor接口
ExecutorService接口
ScheduledExecutorService
Future与Callable
线程池类型
FixedThreadPool
CachedThreadPool
SingleThreadExecutor
ScheduledThreadPool
线程池配置
核心线程数
最大线程数
队列选择
拒绝策略
8 原子操作 #
原子变量
AtomicInteger
AtomicLong
AtomicBoolean
AtomicReference
原子数组
AtomicIntegerArray
AtomicLongArray
AtomicReferenceArray
字段更新器
AtomicIntegerFieldUpdater
AtomicLongFieldUpdater
AtomicReferenceFieldUpdater
mindmap
id8[原子操作]
id8-1[原子变量]
id8-2[AtomicInteger]
id8-3[AtomicLong]
id8-4[AtomicBoolean]
id8-5[AtomicReference]
id8-6[原子数组]
id8-7[AtomicIntegerArray]
id8-8[AtomicLongArray]
id8-9[AtomicReferenceArray]
id8-10[字段更新器]
id8-11[AtomicIntegerFieldUpdater]
id8-12[AtomicLongFieldUpdater]
id8-13[AtomicReferenceFieldUpdater]
9 并发工具类 #
mindmap
id9[并发工具类]
id9-1[CountDownLatch]
id9-2[工作原理]
id9-3[使用场景]
id9-4[示例代码]
id9-5[CyclicBarrier]
id9-6[循环屏障]
id9-7[与CountDownLatch比较]
id9-8[应用实例]
id9-9[Exchanger]
id9-10[数据交换]
id9-11[使用模式]
id9-12[注意事项]
CountDownLatch
工作原理
使用场景
示例代码
CyclicBarrier
循环屏障
与CountDownLatch比较
应用实例
Exchanger
数据交换
使用模式
注意事项
10 高级并发特性 #
Fork/Join框架
工作窃取算法
RecursiveTask
RecursiveAction
并行计算示例
CompletableFuture
异步编程
组合操作
异常处理
回调机制
线程局部变量
ThreadLocal原理
InheritableThreadLocal
内存泄漏问题
使用最佳实践
mindmap
id10[高级并发特性]
id10-1[Fork/Join框架]
id10-2[工作窃取算法]
id10-3[RecursiveTask]
id10-4[RecursiveAction]
id10-5[并行计算示例]
id10-6[CompletableFuture]
id10-7[异步编程]
id10-8[组合操作]
id10-9[异常处理]
id10-10[回调机制]
id10-11[线程局部变量]
id10-12[ThreadLocal原理]
id10-13[InheritableThreadLocal]
id10-14[内存泄漏问题]
id10-15[使用最佳实践]
11 性能与调优 #
mindmap
id11[性能与调优]
id11-1[性能监控]
id11-2[线程转储分析]
id11-3[JConsole使用]
id11-4[VisualVM监控]
id11-5[性能指标]
id11-6[死锁检测与避免]
id11-7[死锁条件]
id11-8[死锁检测]
id11-9[死锁预防]
id11-10[死锁恢复]
id11-11[最佳实践]
id11-12[线程安全设计]
id11-13[资源管理]
id11-14[异常处理]
id11-15[测试策略]
性能监控
线程转储分析
JConsole使用
VisualVM监控
性能指标
死锁检测与避免
死锁条件
死锁检测
死锁预防
死锁恢复
最佳实践
线程安全设计
资源管理
异常处理
测试策略
12 Java内存模型 #
JMM基础
主内存与工作内存
内存屏障
happens-before关系
内存语义
volatile内存语义
synchronized内存语义
final内存语义
指令重排序
编译器重排序
处理器重排序
内存屏障类型
mindmap
id12[Java内存模型]
id12-1[JMM基础]
id12-2[主内存与工作内存]
id12-3[内存屏障]
id12-4[happens-before关系]
id12-5[内存语义]
id12-6[volatile内存语义]
id12-7[synchronized内存语义]
id12-8[final内存语义]
id12-9[指令重排序]
id12-10[编译器重排序]
id12-11[处理器重排序]
id12-12[内存屏障类型]
13 实际应用场景 #
mindmap
id13[实际应用场景]
id13-1[Web服务器]
id13-2[请求处理]
id13-3[连接池管理]
id13-4[会话管理]
id13-5[数据库操作]
id13-6[连接池]
id13-7[事务管理]
id13-8[批量处理]
id13-9[消息处理]
id13-10[消息队列]
id13-11[事件驱动]
id13-12[异步处理]
Web服务器
请求处理
连接池管理
会话管理
数据库操作
连接池
事务管理
批量处理
消息处理
消息队列
事件驱动
异步处理
14 新特性与未来发展 #
Java 8+新特性
并行流
CompletableFuture增强
新的并发类
响应式编程
Reactor框架
RxJava
异步数据流
虚拟线程
Project Loom
纤程 Fiber
未来发展方向
mindmap
id14[新特性与未来发展]
id14-1[Java 8+新特性]
id14-2[并行流]
id14-3[CompletableFuture增强]
id14-4[新的并发类]
id14-5[响应式编程]
id14-6[Reactor框架]
id14-7[RxJava]
id14-8[异步数据流]
id14-9[虚拟线程]
id14-10[Project Loom]
id14-11[纤程 Fiber]
id14-12[未来发展方向]