
├── 01 第一章 同步器AQS
│ ├── 01 AQS的概念和原理
│ │ ├── 01 1-0-1课程介绍和学习目标
│ │ ├── 02 1-1-1AQS的概念和工作模式
│ │ ├── 03 1-1-2回顾对象锁的工作原理
│ │ └── 09 1-1-8AQS源码解析之acqureiInterruptibly和tryAcquireNanos方法简介
│ ├── 02 AQS的数据结构及使用方式、Lock框架的再认识
│ │ ├── 01 1-2-1AQS队列数据结构的基本介绍
│ │ ├── …
│ │ ├── 13 1-4-1Lock和synchronized的区别
│ │ ├── 16 1-4-4读写锁ReentrantReadWriteLock的基本使用
│ │ └── 22 1-4-10ForkJoin案例:使用RecursiveAction遍历目录(含子目录)打印指定类型文件
├── 02 第二章 并发容器
│ └── 01 并发容器-课程所有资料在本节下载
│ ├── 01 2-0-1课程介绍与学习目标
│ ├── 02 2-1-1ConcurrentHashMap预备知识:hash算法和位运算
│ ├── …
│ ├── 09 2-1-8ConcurrentHashMap在jdk8及以后的实现原理概述
│ ├── 12 2-1-11ConcurrentHashMap在jdk8及以后的扩容机制和size()方法源码解析
│ ├── 17 2-3-1阻塞队列的概念及由来
│ ├── 20 2-3-4使用DelayQueue实现延时订单-延时队列元素工具类定义
│ └── 22 2-3-6阻塞队列的底层实现:显示锁+等待通知机制
├── 03 第三章 线程池
│ └── 01 线程池
│ ├── 01 3-0-1课程介绍与学习目标
│ ├── 02 3-1-1线程池的概念和好处
│ ├── …
│ ├── 09 3-2-1ThreadPoolExecutor源码分析:初始化线程池参数
│ ├── 13 3-2-5使用ThreadPoolExecutor创建线程池并使用
│ └── 22 3-3-6CompletionService实现原理
├── 04 第四章 并发安全
│ └── 01 并发安全
│ ├── 01 4-0-1并发安全:课程简介和学习目标
│ ├── 02 4-1-1什么是类的线程安全
│ ├── …
│ ├── 13 4-2-6活锁与饥饿
│ ├── 20 4-3-7懒汉式单例模式:双重检查确保并发安全
│ └── 22 4-3-9单例设计模式大杀器:延迟占位模式
├── 05 第五章 Java内存模型
│ └── 01 Java内存模型
│ ├── 01 5-0-1课程介绍与学习目标
│ ├── 02 5-1-1现代计算机物理内存模型
│ ├── …
│ ├── 19 5-3-1Happens-Before规则的概念
│ ├── 23 5-3-5volatile关键字内存语义的实现
│ └── 25 5-4-2synchronized的实现原理