图书介绍

Java高并发编程详解 多线程与架构设计PDF|Epub|txt|kindle电子书版本网盘下载

Java高并发编程详解 多线程与架构设计
  • 汪文君编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111599937
  • 出版时间:2018
  • 标注页数:382页
  • 文件大小:35MB
  • 文件页数:401页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Java高并发编程详解 多线程与架构设计PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 多线程基础3

第1章 快速认识线程3

1.1 线程的介绍3

1.2 快速创建并启动一个线程3

1.2.1 尝试并行运行4

1.2.2 并发运行交替输出5

1.2.3 使用Jconsole观察线程6

1.3 线程的生命周期详解7

1.3.1 线程的NEW状态8

1.3.2 线程的RUNNABLE状态8

1.3.3 线程的RUNNING状态8

1.3.4 线程的BLOCKED状态8

1.3.5 线程的TERMINATED状态9

1.4 线程的start方法剖析:模板设计模式在Thread中的应用9

1.4.1 Thread start方法源码分析以及注意事项9

1.4.2 模板设计模式在Thread中的应用11

1.4.3 Thread模拟营业大厅叫号机程序13

1.5 Runnable接口的引入以及策略模式在Thread中的使用16

1.5.1 Runnable的职责16

1.5.2 策略模式在Thread中的应用16

1.5.3 模拟营业大厅叫号机程序18

1.6 本章总结19

第2章 深入理解Thread构造函数20

2.1 线程的命名20

2.1.1 线程的默认命名21

2.1.2 命名线程21

2.1.3 修改线程的名字22

2.2 线程的父子关系22

2.3 Thread与ThreadGroup23

2.4 Thread与Runnable24

2.5 Thread与JVM虚拟机栈25

2.5.1 Thread与Stacksize25

2.5.2 JVM内存结构27

2.5.3 Thread与虚拟机栈30

2.6 守护线程33

2.6.1 什么是守护线程33

2.6.2 守护线程的作用34

2.7 本章总结34

第3章 Thread API的详细介绍35

3.1 线程sleep35

3.1.1 sleep方法介绍35

3.1.2 使用TimeUnit替代Thread.sleep36

3.2 线程yield37

3.2.1 yield方法介绍37

3.2.2 yield和sleep37

3.3 设置线程的优先级38

3.3.1 线程优先级介绍38

3.3.2 线程优先级源码分析39

3.3.3 关于优先级的一些总结40

3.4 获取线程ID40

3.5 获取当前线程41

3.6 设置线程上下文类加载器41

3.7 线程interrupt42

3.7.1 interrupt42

3.7.2 isInterrupted43

3.7.3 interrupted45

3.7.4 interrupt注意事项46

3.8 线程join47

3.8.1 线程join方法详解48

3.8.2 join方法结合实战50

3.9 如何关闭一个线程53

3.9.1 正常关闭54

3.9.2 异常退出56

3.9.3 进程假死56

3.10 本章总结58

第4章 线程安全与数据同步59

4.1 数据同步59

4.1.1 数据不一致问题的引入59

4.1.2 数据不一致问题原因分析61

4.2 初识synchronized关键字62

4.2.1 什么是synchronized63

4.2.2 synchronized关键字的用法63

4.3 深入synchronized关键字65

4.3.1 线程堆栈分析65

4.3.2 JVM指令分析67

4.3.3 使用synchronized需要注意的问题70

4.4 This Monitor和Class Monitor的详细介绍72

4.4.1 this monitor72

4.4.2 class monitor74

4.5 程序死锁的原因以及如何诊断77

4.5.1 程序死锁77

4.5.2 程序死锁举例77

4.5.3 死锁诊断80

4.6 本章总结81

第5章 线程间通信82

5.1 同步阻塞与异步非阻塞82

5.1.1 同步阻塞消息处理82

5.1.2 异步非阻塞消息处理83

5.2 单线程间通信84

5.2.1 初识wait和notify84

5.2.2 wait和notify方法详解87

5.2.3 关于wait和notify的注意事项89

5.2.4 wait和sleep90

5.3 多线程间通信90

5.3.1 生产者消费者90

5.3.2 线程休息室wait set93

5.4 自定义显式锁BooleanLock94

5.4.1 synchronized关键字的缺陷94

5.4.2 显式锁BooleanLock95

5.5 本章总结104

第6章 ThreadGroup详细讲解105

6.1 ThreadGroup与Thread105

6.2 创建ThreadGroup105

6.3 复制Thread数组和ThreadGroup数组106

6.3.1 复制Thread数组106

6.3.2 复制ThreadGroup数组109

6.4 ThreadGroup操作109

6.4.1 ThreadGroup的基本操作110

6.4.2 ThreadGroup的interrupt113

6.4.3 ThreadGroup的destroy114

6.4.4 守护ThreadGroup115

6.5 本章总结116

第7章 Hook线程以及捕获线程执行异常117

7.1 获取线程运行时异常117

7.1.1 UncaughtExceptionHandler的介绍117

7.1.2 UncaughtExceptionHandler实例118

7.1.3 UncaughtExceptionHandler源码分析119

7.2 注入钩子线程121

7.2.1 Hook线程介绍121

7.2.2 Hook线程实战122

7.2.3 Hook线程应用场景以及注意事项124

7.3 本章总结124

第8章 线程池原理以及自定义线程池125

8.1 线程池原理125

8.2 线程池实现126

8.2.1 线程池接口定义127

8.2.2 线程池详细实现131

8.3 线程池的应用139

8.4 本章总结142

第二部分 Java ClassLoader144

第9章 类的加载过程144

9.1 类的加载过程简介144

9.2 类的主动使用和被动使用145

9.3 类的加载过程详解148

9.3.1 类的加载阶段148

9.3.2 类的连接阶段149

9.3.3 类的初始化阶段154

9.4 本章总结156

第10章 JVM类加载器158

10.1 JVM内置三大类加载器158

10.1.1 根类加载器介绍159

10.1.2 扩展类加载器介绍159

10.1.3 系统类加载器介绍160

10.2 自定义类加载器161

10.2.1 自定义类加载器,问候世界161

10.2.2 双亲委托机制详细介绍165

10.2.3 破坏双亲委托机制167

10.2.4 类加载器命名空间、运行时包、类的卸载等170

10.3 本章总结175

第11章 线程上下文类加载器177

11.1 为什么需要线程上下文类加载器177

11.2 数据库驱动的初始化源码分析178

11.3 本章总结180

第三部分 深入理解volatile关键字182

第12章 volatile关键字的介绍182

12.1 初识volatile关键字182

12.2 机器硬件CPU184

12.2.1 CPU Cache模型184

12.2.2 CPU缓存一致性问题186

12.3 Java内存模型187

12.4 本章总结188

第13章 深入volatile关键字189

13.1 并发编程的三个重要特性189

13.1.1 原子性189

13.1.2 可见性190

13.1.3 有序性190

13.2 JMM如何保证三大特性191

13.2.1 JMM与原子性192

13.2.2 JMM与可见性193

13.2.3 JMM与有序性194

13.3 volatile关键字深入解析195

13.3.1 volatile关键字的语义195

13.3.2 volatile的原理和实现机制197

13.3.3 volatile的使用场景198

13.3.4 volatile和synchronized199

13.4 本章总结200

第14章 7种单例设计模式的设计201

14.1 饿汉式201

14.2 懒汉式202

14.3 懒汉式+同步方法203

14.4 Double-Check204

14.5 Volatile+Double-Check206

14.6 Holder方式206

14.7 枚举方式207

14.8 本章总结208

第四部分 多线程设计架构模式212

第15章 监控任务的生命周期212

15.1 场景描述212

15.2 当观察者模式遇到Thread212

15.2.1 接口定义212

15.2.2 ObservableThread实现215

15.3 本章总结217

15.3.1 测试运行217

15.3.2 关键点总结219

第16章 Single Thread Execution设计模式220

16.1 机场过安检220

16.1.1 非线程安全221

16.1.2 问题分析223

16.1.3 线程安全225

16.2 吃面问题225

16.2.1 吃面引起的死锁226

16.2.2 解决吃面引起的死锁问题228

16.2.3 哲学家吃面229

16.3 本章总结230

第17章 读写锁分离设计模式231

17.1 场景描述231

17.2 读写分离程序设计232

17.2.1 接口定义232

17.2.2 程序实现234

17.3 读写锁的使用239

17.4 本章总结242

第18章 不可变对象设计模式244

18.1 线程安全性244

18.2 不可变对象的设计244

18.2.1 非线程安全的累加器245

18.2.2 方法同步增加线程安全性247

18.2.3 不可变的累加器对象设计248

18.3 本章总结249

第19章 Future设计模式251

19.1 先给你一张凭据251

19.2 Future设计模式实现251

19.2.1 接口定义252

19.2.2 程序实现253

19.3 Future的使用以及技巧总结256

19.4 增强FutureService使其支持回调257

19.5 本章总结258

第20章 Guarded Suspension设计模式259

20.1 什么是Guarded Suspension设计模式259

20.2 Guarded Suspension的示例259

20.3 本章总结261

第21章 线程上下文设计模式262

21.1 什么是上下文262

21.2 线程上下文设计263

21.3 ThreadLocal详解264

21.3.1 ThreadLocal的使用场景及注意事项265

21.3.2 ThreadLocal的方法详解及源码分析265

21.3.3 ThreadLocal的内存泄漏问题分析270

21.4 使用ThreadLocal设计线程上下文274

21.5 本章总结276

第22章 Balking设计模式277

22.1 什么是Balking设计277

22.2 Balking模式之文档编辑278

22.2.1 Document278

22.2.2 AutoSaveThread280

22.2.3 DocumentEditThread281

22.3 本章总结283

第23章 Latch设计模式284

23.1 什么是Latch284

23.2 CountDownLatch程序实现285

23.2.1 无限等待的Latch285

23.2.2 有超时设置的Latch289

23.3 本章总结291

第24章 Thread-Per-Message设计模式293

24.1 什么是Thread-Per-Message模式293

24.2 每个任务一个线程293

24.3 多用户的网络聊天296

24.3.1 服务端程序296

24.3.2 响应客户端连接的Handler297

24.3.3 聊天程序测试299

24.4 本章总结300

第25章 Two Phase Termination设计模式301

25.1 什么是Two Phase Termination模式301

25.2 Two Phase Termination的示例302

25.2.1 线程停止的Two Phase Termination302

25.2.2 进程关闭的Two Phase Termination303

25.3 知识扩展304

25.3.1 Strong Reference及LRUCache304

25.3.2 Soft Reference及SoftLRUCache308

25.3.3 Weak Reference311

25.3.4 Phantom Reference312

25.4 本章总结314

第26章 Worker-Thread设计模式315

26.1 什么是Worker-Thread模式315

26.2 Worker-Thread模式实现315

26.2.1 产品及组装说明书316

26.2.2 流水线传送带317

26.2.3 流水线工人319

26.3 本章总结320

26.3.1 产品流水线测试320

26.3.2 Worker-Thread和Producer-Consumer321

第27章 Active Objects设计模式323

27.1 接受异步消息的主动对象323

27.2 标准Active Objects模式设计323

27.2.1 OrderService接口设计325

27.2.2 OrderServiceImpl详解325

27.2.3 OrderServiceProxy详解326

27.2.4 MethodMessage328

27.2.5 ActiveMessageQueue330

27.2.6 OrderServiceFactory及测试332

27.3 通用Active Objects框架设计333

27.3.1 ActiveMessage详解334

27.3.2 @ActiveMethod336

27.3.3 ActiveServiceFactory详解337

27.3.4 ActiveMessageQueue及其他339

27.4 本章总结341

第28章 Event Bus设计模式342

28.1 Event Bus设计343

28.1.1 Bus接口详解343

28.1.2 同步EventBus详解345

28.1.3 异步EventBus详解347

28.1.4 Subscriber注册表Registry详解348

28.1.5 Event广播Dispatcher详解350

28.1.6 其他类接口设计353

28.1.7 Event Bus测试355

28.2 Event Bus实战——监控目录变化357

28.2.1 WatchService遇到EventBus357

28.2.2 FileChangeEvent359

28.2.3 监控目录变化359

28.3 本章总结360

第29章 Event Driven设计模式361

29.1 Event-Driven Architecture基础361

29.1.1 Events361

29.1.2 Event Handlers362

29.1.3 Event Loop363

29.2 开发一个Event-Driven框架364

29.2.1 同步EDA框架设计364

29.2.2 异步EDA框架设计370

29.3 Event-Driven的使用375

29.3.1 Chat Event375

29.3.2 Chat Channel(Handler)376

29.3.3 Chat User线程377

29.4 本章总结379

热门推荐