ConcurrencyWithJava

《精通 Java 并发编程(第2 版 )》学习笔记

所用书籍

Mastering Concurrency Programming with Java 9,Javier Fernandez Gonzalez 著。
GitHub 地址

01. 第一步:并发设计原理

  1. 基本的并发概念
  2. 并发应用程序中可能出现的问题
  3. 设计并发算法的方法论
  4. Java 并发 API
  5. 并发设计模式
  6. 设计并发算法的提示和技巧

02. 使用基本元素: Thread 和 Runnable

  1. Java 中的线程
    1.1 Java 中的线程:特征和状态。
    1.2 Thread 类和 Runnable 接口。
  2. 第一个例子:矩阵乘法
  3. 第二个例子:文件搜索

03. 管理大量线程:执行器

  1. 执行器简介
    1.1 执行器的基本特征
    1.2 执行器框架的基本组件
  2. 第一个例子:k-最近邻算法
  3. 第二个例子:客户端/服务器环境下的并发处理
  4. 其他重要方法

04. 充分利用执行器

  1. 执行器的高级特性
  2. 第一个例子:高级服务器应用程序
  3. 第二个例子:执行周期性任务
  4. 有关执行器的其他信息

05. 从任务获取数据: Callable 接口与 Future 接口

  1. Callable 接口和 Future 接口简介
  2. 第一个例子:单词最佳匹配算法
  3. 第二个例子:为文档集创建倒排索引
  4. 其他重要方法

06. 运行分为多阶段的任务:Phaser类

  1. Phaser 类简介
  2. 第一个例子:关键字抽取算法
  3. 第二个例子:遗传算法

07. 优化分治解决方案:Fork/Join 框架

  1. Fork/Join 框架简介
  2. 第一个例子:k-means 聚类算法
  3. 第二个例子:数据筛选算法
  4. 第三个例子:归并排序算法
  5. Fork/Join 框架的其他方法

08. 使用并行流处理大规模数据集:MapReduce 模型

  1. 流的简介
  2. 第一个例子:数值综合分析应用程序
  3. 第二个例子:信息检索工具
  4. 约简操作简介

09. 使用并行流处理大规模数据集:MapCollect 模型

  1. 使用流收集数据
  2. 第一个例子:无索引条件下的数据搜索
  3. 第二个例子:推荐系统
  4. 第三个例子:社交网络中的共同联系人

10. 异步流处理:反应流

  1. Java 反应流简介
  2. 第一个例子:面向事件通知的集中式系统
  3. 第二个例子:新闻系统

11. 探究并发数据结构和同步工具

  1. 并发数据结构
    1.1 阻塞型数据结构和非阻塞型数据结构
    1.2 并发数据结构
    1.3 使用新特性
    1.4 原子变量
    1.5 变量句柄
  2. 同步机制
    2.1 CommonTask 类
    2.2 Lock 接口
    2.3 Semaphore 类
    2.4 CountDownLatch 类
    2.5 CyclicBarrier 类
    2.6 CompletableFuture 类

12. 测试与监视并发应用程序

  1. 监视并发对象
    1.1 监视线程
    1.2 监视锁
    1.3 监视执行器
    1.4 监视 Fork/Join 框架
    1.5 监视 Phaser
    1.6 监视流 API
  2. 监视并发应用程序
    2.1 Overview 选项卡
    2.2 Memory 选项卡
    2.3 Threads 选项卡
    2.4 Classes 选项卡
    2.5 VM Summary 选项卡
    2.6 MBeans 选项卡
    2.7 About 选项卡
  3. 测试并发应用程序
    3.1 使用MultithreadedTC
    3.2 使用 Java Pathfinder

13. JVM 中的并发处理:Clojure、带有 GPars 库的 Groovy 以及 Scala

  1. Clojure 的并发处理
    1.1 使用 Java 元素
    1.2 引用类型
    1.3 Ref 对象
    1.4 Delay
    1.5 Future
    1.6 Promise
  2. Groovy 及其 GPars 库的并发处理
    2.1 使用 Java 元素
    2.2 数据并行处理
    2.3 Fork/Join 处理
    2.4 Actor
    2.5 Agent
    2.6 Dataflow
  3. Scala 的并发处理
    3.1 Scala 中的 Future 对象
    3.2 Promise