多线程编程

全屏查看

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[未来发展方向]