《Java 9并发编程实战》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:(西)哈维尔·费尔南德兹·冈萨雷斯(JavierFernandezGonzalez)著;ETO翻译小组译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2019
  • ISBN:9787115505866
  • 页数:247 页
图书介绍:本书将带你了解所有的新API,向您展示如何构建并行多线程应用程序。这本书涵盖了所有Java并发API的元素,包括基本配方,这些帮助您利用激动人心的新功能。您将学习如何使用并行和反应流来处理大规模数据集。接下来,您将继续创建流,并使用他们所有中间和终端的操作以一种并行且函数性的方式来进行数据的收集。此外,你会了解一系列的实战方式,如线程管理、同步、执行人、并行和反应流等。

第1章 线程管理 1

1.1 简介 1

1.2 线程的创建、运行和设置 2

1.3 线程中断 8

1.4 控制线程中断 11

1.5 线程的休眠和唤醒 14

1.6 等待线程执行结束 16

1.7 守护线程的创建与运行 19

1.8 处理线程中的不可控异常 23

1.9 使用线程本地变量 26

1.10 线程分组及线程组中不可控异常的处理 29

1.11 使用工厂创建线程 33

第2章 线程同步基础 37

2.1 简介 37

2.2 方法同步 38

2.3 在同步代码块中使用条件 46

2.4 在同步代码块中使用锁机制 51

2.5 用读/写锁保护同步代码块 57

2.6 在一个锁中使用多个条件 62

2.7 高阶知识:StampedLock的使用 70

第3章 线程同步工具 78

3.1 简介 78

3.2 控制对资源的一个或多个副本的并发访问 79

3.3 等待多个并发事件 85

3.4 在指定状态点同步任务 90

3.5 运行阶段性并发任务 98

3.6 阶段性并发任务中阶段转变的控制 108

3.7 两个并发任务间的数据交换 114

3.8 异步地完成和关联任务 118

第4章 线程执行器 128

4.1 简介 128

4.2 创建一个线程执行器并实现其拒绝策略 129

4.3 在一个执行器里执行任务并返回结果 136

4.4 运行多个任务并处理第一个返回结果 140

4.5 运行多个任务并处理全部返回结果 146

4.6 在执行器内延迟运行任务 150

4.7 在执行器内周期性地运行任务 154

4.8 在执行器内取消任务 157

4.9 在执行器内控制任务的完成 160

4.10 在执行器内分离任务的启动并处理返回结果 164

第5章 fork/join框架 171

5.1 简介 171

5.2 创建一个fork/join池 173

5.3 合并任务的执行结果 180

5.4 异步地运行任务 189

5.5 在任务中抛出异常 196

5.6 取消一个任务 200

第6章 并行反应式流 208

6.1 简介 208

6.2 使用不同的源创建流 210

6.3 归约一个流的元素 217

6.4 收集流中的元素 224

6.5 把一个动作应用到流的每个元素上 231

6.6 过滤流中的元素 234

6.7 转换流中的元素 237

6.8 排序流中的元素 241

6.9 在流中的元素上验证条件 244

6.10 在反应式流上反应式编程 248

第7章 并发集合 256

7.1 简介 256

7.2 运用非阻塞线程安全的双端队列 257

7.3 运用阻塞线程安全的双端队列 262

7.4 运用按优先级排序的阻塞线程安全队列 265

7.5 运用带延迟元素的线程安全列表 271

7.6 运用线程安全的navigable map 276

7.7 运用线程安全的HashMap 281

7.8 运用原子性变量 287

7.9 运用原子性数组 294

7.10 运用volatile关键字 298

7.11 运用变量句柄 302

第8章 自定义并发类 307

8.1 简介 307

8.2 自定义ThreadPoolExecutor类 308

8.3 实现一个基于优先级的Executor类 313

8.4 实现ThreadFactory接口来生成自定义线程 317

8.5 在一个Executor对象中使用ThreadFactory 322

8.6 自定义在一个周期调度性线程池中运行的任务 324

8.7 实现一个ThreadFactory以生成fork/join框架的自定义线程 331

8.8 自定义运行于fork/join框架中的任务 338

8.9 实现一个自定义Lock类 342

8.10 实现一个基于优先级的传递队列 348

8.11 实现自己的原子性对象 359

8.12 实现自己的流生成器 363

8.13 实现自己的异步流 369

第9章 并发程序的测试 378

9.1 简介 378

9.2 监测Lock接口 379

9.3 监测Phaser类 383

9.4 监测Executor框架 387

9.5 监测fork/join任务池 390

9.6 监测流 395

9.7 输出有效日志信息 397

9.8 利用FindBugs分析并发程序代码 402

9.9 使用Eclipse调试并发程序代码 406

9.10 使用NetBeans调试并发程序代码 408

9.11 使用MultithreadedTC调试并发程序代码 413

9.12 使用JConsole监测 416

第10章 附加信息 421

10.1 简介 421

10.2 在Executor框架中处理Runnable对象的结果 421

10.3 在ForkJoinPool类中处理未控制的异常 427

10.4 使用线程安全的阻塞队列在生产者和消费者之间进行交互 431

10.5 监测Thread类 436

10.6 监测Semaphore类 440

10.7 生成并发随机数 443

第11章 并发编程设计 445

11.1 简介 445

11.2 尽可能使用不可变对象 446

11.3 对锁排序以避免死锁 449

11.4 使用原子变量替代同步 451

11.5 尽可能短地持有锁 455

11.6 委托执行器管理线程 459

11.7 使用并发数据结构替代手动编程 462

11.8 使用延迟初始化预防问题 464

11.9 使用fork/join框架替代执行器 466

11.10 避免在锁中使用阻塞操作 470

11.11 避免使用已弃用的方法 472

11.12 使用执行器替代线程组 473

11.13 使用流处理大数据集 474

11.14 其他提示和技巧 479