-
内容大纲
随着移动互联网的发展,几乎所有主流的互联网应用都需要应对高并发场景的挑战。所以不管是Java初学者,还是从业多年的Java开发老兵,了解和掌握Java高并发编程的相关知识都是非常必要的。
本书内容由浅入深,采用理论与实践相结合的方式讲解Java高并发编程的相关知识。首先,介绍对高并发的理解、Java多线程基础、Jrdva并发包相关类的使用与设计原理;然后,拓展讲解分布式系统设计的相关原理、挑战、涉及的相关框架、中间件等;最后,对流行的Java开源框架的源码设计进行分析,结合实现一个简易版的秒杀系统来介绍如何基于Java语言实现一个高并发系统,达到原理与实践相结合的目的,帮助读者朋友更好地掌握Java高并发编程的知识。 -
作者介绍
谢议尊,2016年本科毕业于中山大学软件工程专业,毕业后一直从事服务端研发工作,目前在BAT其中一家任职。擅长Java服务端编程,熟悉Java各核心框架的源码设计,有着丰富的高并发系统设计与开发经验。 -
目录
第一部分 基础篇
第1章 高并发的理解
1.1 何为高并发
1.1.1 高性能、高可用与高并发
1.1.2 并发与并行
1.1.3 高并发的衡量指标
1.2 高并发的应对策略
1.2.1 单机高并发
1.2.2 分布式高并发
1.3 小结
第2章 操作系统多线程基础
2.1 线程概念
2.1.1 多任务调度
2.1.2 线程与进程的关系
2.1.3 多线程模型
2.2 多线程的挑战
2.2.1 数据一致性
2.2.2 死锁问题
2.2.3 线程上下文切换与内存开销
2.3 小结
第3章 Java多线程基础
3.1 线程的使用
3.1.1 Thread类的使用
3.1.2 Runrlable接口的使用
3.2 线程的状态与状态转换
3.2.1 线程的状态
3.2.2 线程的状态转换
3.2.3 JDK线程状态查看工具
3.3 线程安全
3.3.1 synchronized关键字与互斥锁
3.3.2 volatile关键字与线程可见性
3.3.3 不可变的final关键字与无状态
3.3.4 ThreadLocal线程本地变量
3.4 小结
第二部分 进阶篇
第4章 Executor线程池框架
4.1 Executor线程池框架设计概述
4.2 Executor接口与ExecutorService接口
4.2.1 ExectJtor接口
4.2.2 ExecutorService接口
4.3 ThreadPoolExecutor线程池
4.3.1 用法
4.3.2 工作线程池
4.3.3 任务的提交
4.3.4 任务的执行
4.3.5 任务的执行结果
4.3.6 任务拒绝策略
4.3.7 线程池的关闭
4.4 Future任务的异步结果
4.4.1 任务的执行结果FutureTask
4.4.2 任务的提交与返回执行结果
4.5 ScheduledExecutorService任务周期性执行
4.5.1 用法
4.5.2 固定频率与固定延迟执行
4.5.3 周期性任务停止执行的原因
4.6 Executors线程池创建工具
4.6.1 固定线程池,无界队列
4.6.2 无界线程池
4.6.3 任务周期性执行线程池
4.7 ForkJoin任务分解与并行执行框架
4.7.1 用法
4.7.2 ForkJoinPool线程池
4.7.3 Workoueue任务队列处理器
4.7.4 ForkJ0inTask递归任务
4.8 小结
第5章 Java线程安全字典
5.1 Hashtable全同步Map
5.1.1 用法
5.1.2 源码实现
5.2 SynchronizedMap同步器Map
5.2.1 用法
5.2.2 源码实现
5.3 ConcurrentHashMap并发Map
5.3.1 用法
5.3.2 JDK 1.7 源码实现
5.3.3 JDK 1.8 源码实现
5.4 ConcurrentSkipListMap有序并发Map
5.4.1 用法
5.4.2 源码实现
5.5 小结
第6章 Java并发队列
6.1 BlockingQueue阻塞先入先出队列
6.1.1 用法
6.1.2 源码实现
6.2 BlockingDeque阻塞先入先出双端队列
6.2.1 用法
6.2.2 源码实现
6.3 ConcurrentLinkedQueue并发队列
6.3.1 用法
6.3.2 源码实现
6.3.3 C0ncurrentLinkedDeaue并发双端队列
6.4 CopyOnWriteArray List写时拷贝列表
6.4.1 用法
6.4.2 源码实现
6.5 小结
第7章 AQS线程同步器
7.1 AQS线程同步器基础
7.1.1 核心设计
7.1.2 核心方法
7.2 ReentrantLOCk可重入锁
7.2.1 用法
7.2.2 源码实现
7.2.3 基于Corlditiorl的生产者消费者模型
7.2.4 ReentrantReadWriteLOCK可重入读写锁
7.3 CountDownLatch倒计时同步器
7.3.1 用法
7.3.2 源码实现
7.4 CyclicBarrier循环栅栏同步器
7.4.1 用法
7.4.2 源码实现
7.5 Semaphore信号量同步器
7.5.1 用法
7.5.2 源码实现
7.6 小结
第三部分拓展篇
第8章 分布式系统设计理论
8.1 系统架构演进
8.1.1 单体应用架构
8.1.2 分布式应用架构
8.1.3 集群
8.2 分布式理论
8.2.1 CAP理论
8.2.2 BASE理论
8.3 高并发
8.4 负载均衡
8.4.1 四层负载均衡与七层负载均衡
8.4.2 负载均衡的实现算法
8.5 缓存机制
8.5.1 缓存更新
8.5.2 缓存过期清理
8.5.3 缓存淘汰机制
8.5.4 缓存穿透与缓存雪崩
8.6 异步处理
8.7 高可用
8.7.1 限流
8.7.2 熔断
8.7.3 降级
8.8 可靠性与容错机制
8.8.1 容错机制
8.8.2 重试与幂等性
8.9 小结
第9章 Java分布式应用设计核心技术
9.1 分布式服务调用RPC框架
9.1.1 RPC的核心原理
9.1.2 跨语言调用型:qRPC与Thrift
9.1.3 服务治理型:Dubbo与Motan
9.2 分布式消息队列
9.3 AMQP协议实现:RabbitMQ
9.3.1 RabbitMQ的核心组件
9.3.2 持久化与镜像队列
9.3.3 集群:对等集群
9.4 海量消息处理:Kafka
9.4.1 主题与分区
9.4.2 生产者
9.4.3 broker机器集群
9.4.4 消费者
9.5 Redis消息队列与发布订阅
9.5.1 基于列表的消息队列
9.5.2 消息发布与订阅的使用
9.6 分布式缓存
9.6.1 MemCached
9.6.2 Redis
9.7 分布式锁
9.7.1 线程锁与分布式锁
9.7.2 基于Redis实现分布式锁的原理
9.7.3 基于ZooKeeper实现分布式锁的原理
9.8 小结
第四部分 实践篇
第10章 开源框架高并发源码分析
10.1 Dubbo高并发编程实战
10.1.1 Dubbo协议方法调用的请求与响应
10.1.2 服务端与客户端的限流
10.2 Netty与Tomcat的线程模型
10.2.1 NIO与Reactor线程模型
10.2.2 Netty线程模型设计
10.2.3 Tomcat线程模型设计
10.3 小结
第11章 秒杀系统设计分析
11.1 秒杀系统设计概述
11.1.1 秒杀系统设计思路
11.1.2 秒杀实战项目:eshop
11.2 限流机制
11.2.1 核心设计
11.2.2 URI和用户维度的限流实现
11.3 缓存的使用
11.3.1 核心设计
11.3.2 商品库存缓存实现
11.4 分布式锁的使用
11.5 队列削峰与异步处理
11.6 小结
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-

孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-

时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-

本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...
[
