mindmap
Java 并发学习路线
1.基础知识
1.1 Java 内存模型(JMM)
1.1.1 理解主内存与工作内存
1.1.2 了解可见性、原子性、有序性
1.2 线程基础
1.2.1 创建线程
1.2.2 线程寿命周期
1.2.3 线程优先级和守护线程
2.线程同步
2.1 synchronized 关键字
2.2 volatile
2.3 Lock接口
2.4 原子类
3.线程间通信
3.1 wait、notify、notifyAll
3.1.1 使用条件
3.1.2 经典生产者&消费者问题
3.2 Condition 接口
3.2.1 与Lock配合使用
3.2.2 实现复杂的线程间通信
4.并发工具类
4.1 CountDownLatch
4.2 CyclicBarrier
4.3 Semaphore
4.4 Exchanger
5.线程池
5.1 Executor 框架
5.1.1 Executor、ExecutorService、ScheduleExecutorService
5.2 ThreadPoolExecutor
5.2.1 核心参数: 核心线程数、最大数程数、队列、拒绝策略
5.2.2 线程池的生命周期
6.并发集合
6.1 BlockingQueue
6.1.1 ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、SynchronousQueue
6.2 ConcurrentHashMap
6.3 CopyOnWriteArrayList
6.4 ConcurrentSkipListMap
7.Fork/Join框架
7.1 ForkJoinPool
7.2 RecursiveTask和RecursiveAction
8.异步编程
8.1 Future和FutureTask
8.2 CompletableFuture
9.高级主题
9.1 ThreadLocal
9.2 AQS(AbstractQueueSynchronizer)
10.性能调优与调试
10.1 线程死锁
10.2 线程转储分析
10.3 性能监控工具
11.实践项目
11.1 实现一个高并发的Web服务器
11.2 设计一个多线程下载器
11.3 构建一个并发任务调度系统