Java高并发编程详解:多线程与架构设计

Java高并发编程详解:多线程与架构设计

作者:汪文君

出版社:机械工业

出版年:2018年5月

ISBN:9787111599937

所属分类:经济金融

书刊介绍

《Java高并发编程详解:多线程与架构设计》内容简介

本书共分为四个部分:第一部分详细地介绍了Java多线程的基本用法和各个API的使用,并且着重介绍了线程与Java虚拟机内存之间的关系。第二部分由线程上下文类加载器方法引入,介绍为什么在线程中要有上下文类加载器的方法函数,从而掌握类在JVM的加载和初始化的整个过程,在该部分的最后通过分析mysql数据库驱动的初始化过程更进一步的解释了线程上下文类加载器存在的作用。第三部分主要围绕着volatile关键字展开,在该部分中我们将会了解到现代CPU的架构以及Java的内存模型(JMM),深入掌握高并发编程需要主要到的三个重要特性。最后一部分,主要站在架构设计的高度看待如何巧妙的开发出真正具备并发能力的系统,分别通过不同的场景描述结合我们在开发中经常遇到的问题引入线程模式。
汪文君 汇丰软件(广东)研发中心数据服务中心技术经理、技术专家,目前专注于实时数据datapipeline平台的构建与架构,在加入汇丰软件以前,曾有5年多的移动通讯工作经验,以及移动互联网、云计算和B2C电子商务平台的开发架构经验,热衷于技术分享、技术细节锤炼。目前已录制10余套技术视频,在互联网上广泛传播。

作品目录

推荐序一
推荐序二
推荐序三
推荐序四
前言
第一部分
多线程基础
第1章:快速认识线程
1.1、线程的介绍
1.2、快速创建并启动一个线程
1.3、线程的生命周期详解
1.4、线程的start方法剖析:模板设计模式在Thread中的应用
1.5、Runnable接口的引入以及策略模式在Thread中的使用
1.6、本章总结
第2章:深入理解Thread构造函数
2.1、线程的命名
2.2、线程的父子关系
2.3、Thread与ThreadGroup
2.4、Thread与Runnable
2.5、Thread与JVM虚拟机栈
2.6、守护线程
2.7、本章总结
第3章:Thread
API的详细介绍
3.1、线程sleep
3.2、线程yield
3.3、设置线程的优先级
3.4、获取线程ID
3.5、获取当前线程
3.6、设置线程上下文类加载器
3.7、线程interrupt
3.8、线程join
3.9、如何关闭一个线程
3.10、本章总结
第4章:线程安全与数据同步
4.1、数据同步
4.2、初识synchronized关键字
4.3、深入synchronized关键字
4.4、This
Monitor和Class
Monitor的详细介绍
4.5、程序死锁的原因以及如何诊断
4.6、本章总结
第5章:线程间通信
5.1、同步阻塞与异步非阻塞
5.2、单线程间通信
5.3、多线程间通信
5.4、自定义显式锁BooleanLock
5.5、本章总结
第6章:ThreadGroup详细讲解
6.1、ThreadGroup与Thread
6.2、创建ThreadGroup
6.3、复制Thread数组和ThreadGroup数组
6.4、ThreadGroup操作
6.5、本章总结
第7章:Hook线程以及捕获线程执行异常
7.1、获取线程运行时异常
7.2、注入钩子线程
7.3、本章总结
第8章:线程池原理以及自定义线程池
8.1、线程池原理
8.2、线程池实现
8.3、线程池的应用
8.4、本章总结
第二部分
Java
ClassLoader
第9章:类的加载过程
9.1、类的加载过程简介
9.2、类的主动使用和被动使用
9.3、类的加载过程详解
9.4、本章总结
第10章:JVM类加载器
10.1、JVM内置三大类加载器
10.2、自定义类加载器
10.3、本章总结
第11章:线程上下文类加载器
11.1、为什么需要线程上下文类加载器
11.2、数据库驱动的初始化源码分析
11.3、本章总结
第三部分
深入理解volatile关键字
第12章:volatile关键字的介绍
12.1、初识volatile关键字
12.2、机器硬件CPU
12.3、Java内存模型
12.4、本章总结
第13章:深入volatile关键字
13.1、并发编程的三个重要特性
13.2、JMM如何保证三大特性
13.3、volatile关键字深入解析
13.4、本章总结
第14章:7种单例设计模式的设计
14.1、饿汉式
14.2、懒汉式
14.3、懒汉式+同步方法
14.4、Double-Check
14.5、Volatile+Double-Check
14.6、Holder方式
14.7、枚举方式
14.8、本章总结
第四部分
多线程设计架构模式
第15章:监控任务的生命周期
15.1、场景描述
15.2、当观察者模式遇到Thread
15.3、本章总结
第16章:Single
Thread
Execution设计模式
16.1、机场过安检
16.2、吃面问题
16.3、本章总结
第17章:读写锁分离设计模式
17.1、场景描述
17.2、读写分离程序设计
17.3、读写锁的使用
17.4、本章总结
第18章:不可变对象设计模式
18.1、线程安全性
18.2、不可变对象的设计
18.3、本章总结
第19章:Future设计模式
19.1、先给你一张凭据
19.2、Future设计模式实现
19.3、Future的使用以及技巧总结
19.4、增强FutureService使其支持回调
19.5、本章总结
第20章:Guarded
Suspension设计模式
20.1、什么是Guarded
Suspension设计模式
20.2、Guarded
Suspension的示例
20.3、本章总结
第21章:线程上下文设计模式
21.1、什么是上下文
21.2、线程上下文设计
21.3、ThreadLocal详解
21.4、使用ThreadLocal设计线程上下文
21.5、本章总结
第22章:Balking设计模式
22.1、什么是Balking设计
22.2、Balking模式之文档编辑
22.3、本章总结
第23章:Latch设计模式
23.1、什么是Latch
23.2、CountDownLatch程序实现
23.3、本章总结
第24章:Thread-Per-Message设计模式
24.1、什么是Thread-Per-Message模式
24.2、每个任务一个线程
24.3、多用户的网络聊天
24.4、本章总结
第25章:Two
Phase
Termination设计模式
25.1、什么是Two
Phase
Termination模式
25.2、Two
Phase
Termination的示例
25.3、知识扩展
25.4、本章总结
第26章:Worker-Thread设计模式
26.1、什么是Worker-Thread模式
26.2、Worker-Thread模式实现
26.3、本章总结
第27章:Active
Objects设计模式
27.1、接受异步消息的主动对象
27.2、标准Active
Objects模式设计
27.3、通用Active
Objects框架设计
27.4、本章总结
第28章:Event
Bus设计模式
28.1、Event
Bus设计
28.2、Event
Bus实战——监控目录变化
28.3、本章总结
第29章:Event
Driven设计模式
29.1、Event-Driven
Architecture基础
29.2、开发一个Event-Driven框架
29.3、Event-Driven的使用
29.4、本章总结

相关推荐

微信二维码