为你推荐

内容简介
推荐语
前言
第1篇 基础知识
第1章 操作系统线程调度
1.1 冯·诺依曼体系结构
1.2 CPU架构
1.3 操作系统线程
1.4 Java线程与操作系统线程的关系
1.5 本章总结
第2章 并发编程概述
2.1 并发编程的基本概念
2.2 并发编程的风险
2.3 并发编程中的锁
2.4 本章总结
第2篇 核心原理
第3章 并发编程的三大核心问题
3.1 分工问题
3.2 同步问题
3.3 互斥问题
3.4 本章总结
第4章 并发编程的本质问题
4.1 计算机的核心矛盾
4.2 原子性
4.3 可见性
4.4 有序性
4.5 解决方案
4.6 本章总结
第5章 原子性的核心原理
5.1 原子性原理
5.2 处理器保证原子性
5.3 互斥锁保证原子性
5.4 CAS保证原子性
5.5 本章总结
第6章 可见性与有序性核心原理
6.1 CPU多级缓存架构
6.2 缓存一致性
6.3 伪共享
6.4 volatile核心原理
6.5 内存屏障
6.6 Java内存模型
6.7 Happens-Before原则
6.8 本章总结
第7章 synchronized核心原理
7.1 synchronized用法
7.2 Java对象结构
7.3 Java对象头
7.4 使用JOL查看对象信息
7.5 synchronized核心原理
7.6 偏向锁
7.7 轻量级锁
7.8 重量级锁
7.9 锁升级的过程
7.10 锁消除
7.11 本章总结
第8章 AQS核心原理
8.1 AQS核心数据结构
8.2 AQS底层锁的支持
8.3 本章总结
第9章 Lock锁核心原理
9.1 显示锁
9.2 公平锁与非公平锁
9.3 悲观锁与乐观锁
9.4 可中断锁与不可中断锁
9.5 排他锁与共享锁
9.6 可重入锁
9.7 读/写锁
9.8 LockSupport
9.9 本章总结
第10章 CAS核心原理
10.1 CAS的基本概念
10.2 CAS的核心类Unsafe
10.3 使用CAS实现count++
10.4 ABA问题
10.5 本章总结
第11章 死锁的核心原理
11.1 死锁的基本概念
11.2 死锁的分析
11.3 形成死锁的必要条件
11.4 死锁的预防
11.5 本章总结
第12章 锁优化
12.1 缩小锁的范围
12.2 减小锁的粒度
12.3 锁分离
12.4 锁分段
12.5 锁粗化
12.6 避免热点区域问题
12.7 独占锁的替换方案
12.8 其他优化方案
12.9 本章总结
第13章 线程池核心原理
13.1 线程池的核心状态
13.2 线程池的创建方式
13.3 线程池执行任务的核心流程
13.4 线程池的关闭方式
13.5 如何确定最佳线程数
13.6 本章总结
第14章 ThreadLocal核心原理
14.1 ThreadLocal的基本概念
14.2 ThreadLocal的使用案例
14.3 ThreadLocal的核心原理
14.4 ThreadLocal变量的不继承性
14.5 InheritableThreadLocal的使用案例
14.6 InheritableThreadLocal的核心原理
14.7 本章总结
第3篇 实战案例
第15章 手动开发线程池实战
15.1 案例概述
15.2 项目搭建
15.3 核心类实现
15.4 测试程序
15.5 本章总结
第16章 基于CAS实现自旋锁实战
16.1 案例概述
16.2 项目搭建
16.3 核心类实现
16.4 测试程序
16.5 本章总结
第17章 基于读/写锁实现缓存实战
17.1 案例概述
17.2 项目搭建
17.3 核心类实现
17.4 测试程序
17.5 本章总结
第18章 基于AQS实现可重入锁实战
18.1 案例概述
18.2 项目搭建
18.3 核心类实现
18.4 测试程序
18.5 本章总结
第4篇 系统架构
第19章 深度解密分布式锁架构
19.1 锁解决的本质问题
19.2 电商超卖问题
19.3 JVM提供的锁
19.4 分布式锁
19.5 CAP理论与分布式锁模型
19.6 基于Redis实现分布式锁
19.7 本章总结
第20章 深度解密秒杀系统架构
20.1 电商系统架构
20.2 秒杀系统的特点
20.3 秒杀系统的方案
20.4 秒杀系统设计
20.5 扣减库存设计
20.6 Redis助力秒杀系统
20.7 服务器性能优化
20.8 本章总结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜