多线程编程

全屏查看

1 第一部分 多线程基础概念 #

mindmap
    id1[第一部分 多线程基础概念]
        id1-1[线程与进程]
        id1-2[进程定义与特征]
        id1-3[线程定义与特征]
        id1-4[进程与线程的区别]
        id1-5[多线程的优势与劣势]
        id1-6[用户级线程与内核级线程]
        id1-7[多线程模型]
        id1-8[对一模型]
        id1-9[多对一模型]
        id1-10[多对多模型]
        id1-11[混合模型]
        id1-12[各种模型的性能比较]
线程与进程
进程定义与特征
线程定义与特征
进程与线程的区别
多线程的优势与劣势
用户级线程与内核级线程
多线程模型
对一模型
多对一模型
多对多模型
混合模型
各种模型的性能比较

2 第二部分 线程管理与同步 #

线程创建与控制
线程创建方法
线程终止方式
线程状态转换
线程调度策略
线程优先级管理
线程同步机制
临界区概念
互斥锁原理与实现
信号量机制
条件变量
读写锁
屏障同步
自旋锁
死锁与饥饿
死锁产生条件
死锁预防策略
死锁避免算法
死锁检测与恢复
活锁与饥饿问题
mindmap
    id2[第二部分 线程管理与同步]
        id2-1[线程创建与控制]
        id2-2[线程创建方法]
        id2-3[线程终止方式]
        id2-4[线程状态转换]
        id2-5[线程调度策略]
        id2-6[线程优先级管理]
        id2-7[线程同步机制]
        id2-8[临界区概念]
        id2-9[互斥锁原理与实现]
        id2-10[信号量机制]
        id2-11[条件变量]
        id2-12[读写锁]
        id2-13[屏障同步]
        id2-14[自旋锁]
        id2-15[死锁与饥饿]
        id2-16[死锁产生条件]
        id2-17[死锁预防策略]
        id2-18[死锁避免算法]
        id2-19[死锁检测与恢复]
        id2-20[活锁与饥饿问题]

3 第三部分 多线程编程实践 #

mindmap
    id3[第三部分 多线程编程实践]
        id3-1[POSIX线程编程]
        id3-2[pthread库概述]
        id3-3[线程创建与销毁]
        id3-4[线程属性设置]
        id3-5[线程同步原语使用]
        id3-6[线程局部存储]
        id3-7[Windows多线程编程]
        id3-8[Windows线程API]
        id3-9[线程创建与管理]
        id3-10[临界区对象]
        id3-11[事件对象]
        id3-12[互斥体与信号量]
        id3-13[Java多线程编程]
        id3-14[Thread类与Runnable接口]
        id3-15[synchronized关键字]
        id3-16[wait/notify机制]
        id3-17[Lock接口与实现]
        id3-18[线程池框架]
        id3-19[并发集合类]
POSIX线程编程
pthread库概述
线程创建与销毁
线程属性设置
线程同步原语使用
线程局部存储
Windows多线程编程
Windows线程API
线程创建与管理
临界区对象
事件对象
互斥体与信号量
Java多线程编程
Thread类与Runnable接口
synchronized关键字
wait/notify机制
Lock接口与实现
线程池框架
并发集合类

4 第四部分 高级多线程技术 #

线程池技术
线程池设计原理
工作队列管理
线程池参数调优
拒绝策略
常见线程池实现
异步编程模型
回调函数机制
Future模式
Promise模式
异步/等待模式
反应式编程
无锁编程
原子操作原理
CAS操作机制
无锁数据结构
内存屏障与顺序一致性
ABA问题及解决方案
mindmap
    id4[第四部分 高级多线程技术]
        id4-1[线程池技术]
        id4-2[线程池设计原理]
        id4-3[工作队列管理]
        id4-4[线程池参数调优]
        id4-5[拒绝策略]
        id4-6[常见线程池实现]
        id4-7[异步编程模型]
        id4-8[回调函数机制]
        id4-9[Future模式]
        id4-10[Promise模式]
        id4-11[异步/等待模式]
        id4-12[反应式编程]
        id4-13[无锁编程]
        id4-14[原子操作原理]
        id4-15[CAS操作机制]
        id4-16[无锁数据结构]
        id4-17[内存屏障与顺序一致性]
        id4-18[ABA问题及解决方案]

5 第五部分 多线程性能优化 #

mindmap
    id5[第五部分 多线程性能优化]
        id5-1[性能分析与调优]
        id5-2[线程竞争分析]
        id5-3[锁粒度优化]
        id5-4[缓存友好性设计]
        id5-5[伪共享问题]
        id5-6[性能监控工具]
        id5-7[并发设计模式]
        id5-8[生产者-消费者模式]
        id5-9[读写者模式]
        id5-10[工作者线程模式]
        id5-11[主从模式]
        id5-12[流水线模式]
        id5-13[内存模型与可见性]
        id5-14[内存一致性模型]
        id5-15[指令重排序问题]
        id5-16[happens-before关系]
        id5-17[volatile关键字]
        id5-18[内存屏障使用]
性能分析与调优
线程竞争分析
锁粒度优化
缓存友好性设计
伪共享问题
性能监控工具
并发设计模式
生产者-消费者模式
读写者模式
工作者线程模式
主从模式
流水线模式
内存模型与可见性
内存一致性模型
指令重排序问题
happens-before关系
volatile关键字
内存屏障使用

6 第六部分 多线程调试与测试 #

多线程调试技术
线程调试工具
死锁检测方法
竞态条件分析
线程转储分析
性能剖析工具
并发测试方法
单元测试框架
压力测试设计
并发bug重现技术
静态分析工具
形式化验证方法
mindmap
    id6[第六部分 多线程调试与测试]
        id6-1[多线程调试技术]
        id6-2[线程调试工具]
        id6-3[死锁检测方法]
        id6-4[竞态条件分析]
        id6-5[线程转储分析]
        id6-6[性能剖析工具]
        id6-7[并发测试方法]
        id6-8[单元测试框架]
        id6-9[压力测试设计]
        id6-10[并发bug重现技术]
        id6-11[静态分析工具]
        id6-12[形式化验证方法]

7 第七部分 实际应用场景 #

mindmap
    id7[第七部分 实际应用场景]
        id7-1[服务器编程]
        id7-2[并发服务器设计]
        id7-3[I/O多路复用]
        id7-4[事件驱动架构]
        id7-5[连接池管理]
        id7-6[负载均衡策略]
        id7-7[图形界面编程]
        id7-8[界面线程与工作线程]
        id7-9[线程间通信机制]
        id7-10[界面更新同步]
        id7-11[响应性优化]
        id7-12[科学计算与数据处理]
        id7-13[并行算法设计]
        id7-14[数据并行化]
        id7-15[任务并行化]
        id7-16[MapReduce模式]
        id7-17[分布式计算框架集成]
服务器编程
并发服务器设计
I/O多路复用
事件驱动架构
连接池管理
负载均衡策略
图形界面编程
界面线程与工作线程
线程间通信机制
界面更新同步
响应性优化
科学计算与数据处理
并行算法设计
数据并行化
任务并行化
MapReduce模式
分布式计算框架集成