站在巨人的肩膀上学习:五位阿里大牛联手撰写的《深入浅出 Java 多线程》
2.1 Thread 类和 Runnable 接口
2.1.1 继承 Thread 类
2.1.2 实现 Runnable 接口
2.1.3 Thread 类构造方法
2.1.4 Thread 类的几个常用方法
2.1.5 Thread 类与 Runnable 接口的比较
2.2 Callable、Future 与 FutureTask
2.2.1 Callable 接口
2.2.2 Future 接口
2.2.3 FutureTask 类
2.2.4 FutureTask 的几个状态
第 3 章 线程组和线程优先级
=============
3.1 线程组(ThreadGroup)
3.2 线程的优先级
3.3 线程组的常用方法及数据结构
3.3.1 线程组的常用方法
3.3.2 线程组的数据结构
第 4 章 Java 线程的状态及主要转化方法
====================
4.1 操作系统中的线程状态转换
4.2 Java 线程的 6 个状态
4.2.1 NEW
4.2.2 RUNNABLE
4.2.3 BLOCKED
4.2.4 WAITING
4.2.5 TIMED_WAITING
4.2.6 TERMINATED
4.3 线程状态的转换
4.3.1 BLOCKED 与 RUNNABLE 状态的转换
4.3.2 WAITING 状态与 RUNNABLE 状态的转换
4.3.3 TIMED_WAITING 与 RUNNABLE 状态转换
4.3.4 线程中断
第 5 章 Java 线程间的通信
==============
5.1 锁与同步
5.2 等待/通知机制
5.3 信号量
5.4 管道
5.5 其它通信相关
5.5.1 join 方法
5.5.2 sleep 方法
5.5.3 ThreadLocal 类
5.5.4 InheritableThreadLocal
转发+关注,然后私信回复我 “多线程” 即可获得《深入浅出 Java 多线程》文档资料的免费领取方式。
第 6 章 Java 内存模型基础知识
================
6.1 并发编程模型的两个关键问题
6.2 Java 内存模型的抽象结构
6.2.1 运?时内存的划分
6.2.2 既然堆是共享的,为什么在堆中会有内存不可?问题?
6.2.3 JMM 与 Java 内存区域划分的区别与联系
第 7 章 重排序与 happens-before
======================
7.1 什么是重排序?
7.2 顺序一致性模型与 JMM 的保证
7.2.1 数据竞争与顺序一致性
7.2.2 顺序一致性模型
7.2.3 JMM 中同步程序的顺序一致性效果
7.2.4 JMM 中未同步程序的顺序一致性效果
7.3 happens-before
7.3.1 什么是 happens-before?
7.3.2 天然的 happens-before 关系
第 8 章 volatile
============
8.1 几个基本概念
8.1.1 内存可见性
8.1.2 重排序
8.1.3 happens-before 规则
8.2 volatile 的内存语义
8.2.1 内存可见性
8.2.1 禁止重排序
8.3 volatile 的用途
第 9 章 synchronized 与锁
==================
9.1 Synchronized 关键字
9.2 几种锁
9.2.1 Java 对象头
9.2.2 偏向锁
9.2.3 轻量级锁
9.2.4 重量级锁
9.2.5 总结锁的升级流程
9.2.6 各种锁的优缺点对比
第 10 章 乐观锁和悲观锁
============
10.1 乐观锁与悲观锁的概念
10.2 CAS 的概念
10.3 Java 实现 CAS 的原理 - Unsafe 类
10.4 原子操作-AtomicInteger 类源码简析
10.5 CAS 实现原子操作的三大问题
10.5.1 ABA 问题
10.5.2 循环时间长开销大
10.5.3 只能保证一个共享变量的原子操作
转发+关注,然后私信回复我 “多线程”? 即可获得《深入浅出 Java 多线程》文档资料的免费领取方式。
第 11 章 AQS
========
11.1 AQS 简介
11.2 AQS 的数据结构
11.3 资源共享模式
11.4 AQS 的主要方法源码解析
11.4.1 获取资源
第 12 章 线程池原理
==========
12.1 为什么要使用线程池
12.2 线程池的原理
12.2.1 ThreadPoolExecutor 提供的构造方法
12.2.2 ThreadPoolExecutor 的策略
12.2.3 线程池主要的任务处理流程
12.2.4 ThreadPoolExecutor 如何做到线程复用的?
12.3 四种常见的线程池
12.3.1 newCachedThreadPool
12.3.2 newFixedThreadPool
12.3.3 newSingleThreadExecutor
12.3.4 newScheduledThreadPool
第 13 章 阻塞队列
=========
13.1 阻塞队列的由来
13.2 BlockingQueue 的操作方法
13.3 BlockingQueue 的实现类
13.3.1 ArrayBlockingQueue
13.3.2 LinkedBlockingQueue
13.3.3 DelayQueue
13.3.4 PriorityBlockingQueue
13.3.5 SynchronousQueue
13.5 阻塞队列的原理
13.6 示例和使用场景
13.6.1 生产者-消费者模型
13.6.2 线程池中使用阻塞队列
第 14 章 锁接口和类
==========
14.1 synchronized 的不足之处
14.2 锁的几种分类
14.2.1 可重入锁和非可重入锁
14.2.2 公平锁与非公平锁
14.2.3 读写锁和排它锁
14.3 JDK 中有关锁的一些接口和类
14.3.1 抽象类 AQS/AQLS/AOS
14.3.2 接口 Condition/Lock/ReadWriteLock
14.3.3 ReentrantLock
14.3.4 ReentrantReadWriteLock
14.3.5 StampedLock
第 15 章 并发容器集合
===========
15.1 同步容器与并发容器
15.2 并发容器类介绍
15.2.1 并发 Map
15.2.2 并发 Queue
15.2.3 并发 Set
转发+关注,然后私信回复我 “多线程”? 即可获得《深入浅出 Java 多线程》文档资料的免费领取方式。
第 16 章 CopyOnWrite 容器
==================
16.1 什么是 CopyOnWrite 容器
16.2 CopyOnWriteArrayList
16.3 CopyOnWrite 的业务中实现
评论