精通Java并发编程第2版

精通Java并发编程第2版
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2018-10
版次: 1
ISBN: 9787115491664
定价: 89.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 329页
15人买过
  • Java 提供了一套非常强大的并发API,可以轻松实现任何类型的并发应用程序。本书讲述Java 并发API *重要的元素,包括执行器框架、Phaser 类、Fork/Join 框架、流API、并发数据结构、同步机制,并展示如何在实际开发中使用它们。此外,本书还介绍了设计并发应用程序的方法论、设计模式、实现良好并发应用程序的提示和技巧、测试并发应用程序的工具和方法,以及如何使用面向Java 虚拟机的其他编程语言实现并发应用程序。 哈维尔·费尔南德斯·冈萨雷斯(Javier Fernández González):软件架构师,拥有十余年Java研发经验,对J2EE、Struts框架和使用Java开发大规模数据处理的应用程序颇有心得,为保险、医疗、交通等领域客户开发了许多J2EE Web应用程序。 第 1 章 第 一步:并发设计原理    1

    1.1 基本的并发概念 1

    1.1.1 并发与并行 1

    1.1.2 同步 2

    1.1.3 不可变对象 2

    1.1.4 原子操作和原子变量 3

    1.1.5 共享内存与消息传递 3

    1.2 并发应用程序中可能出现的问题 3

    1.2.1 数据竞争 3

    1.2.2 死锁 4

    1.2.3 活锁 4

    1.2.4 资源不足 4

    1.2.5 优先权反转 5

    1.3 设计并发算法的方法论 5

    1.3.1 起点:算法的一个串行版本 5

    1.3.2 第 1 步:分析 5

    1.3.3 第 2 步:设计 5

    1.3.4 第3 步:实现 6

    1.3.5 第4 步:测试 6

    1.3.6 第5 步:调整 6

    1.3.7 结论 7

    1.4 Java 并发API 8

    1.4.1 基本并发类 8

    1.4.2 同步机制 8

    1.4.3 执行器 9

    1.4.4 Fork/Join 框架 9

    1.4.5 并行流 9

    1.4.6 并发数据结构 9

    1.5 并发设计模式 10

    1.5.1 信号模式 10

    1.5.2 会合模式 11

    1.5.3 互斥模式 11

    1.5.4 多元复用模式 12

    1.5.5 栅栏模式 12

    1.5.6 双重检查锁定模式 12

    1.5.7 读 写锁模式 13

    1.5.8 线程池模式 14

    1.5.9 线程局部存储模式 14

    1.6 设计并发算法的提示和技巧 14

    1.6.1 正确识别独立任务 14

    1.6.2 在尽可能高的层面上实施并发处理 15

    1.6.3 考虑伸缩性 15

    1.6.4 使用线程安全API 15

    1.6.5 绝不要假定执行顺序 16

    1.6.6 在静态和共享场合尽可能使用局部线程变量 16

    1.6.7 寻找更易于并行处理的算法版本 17

    1.6.8 尽可能使用不可变对象 17

    1.6.9 通过对锁排序来避免死锁 17

    1.6.10 使用原子变量代替同步 18

    1.6.11 占有锁的时间尽可能短 19

    1.6.12 谨慎使用延迟初始化 19

    1.6.13 避免在临界段中使用阻塞操作 19

    1.7 小结 20

    第 2 章 使用基本元素:Thread 和Runnable 21

    2.1 Java 中的线程 21

    2.1.1 Java 中的线程:特征和状态 22

    2.1.2 Thread 类和Runnable 接口 23

    2.2 第 一个例子:矩阵乘法 24

    2.2.1 公共类 24

    2.2.2 串行版本 25

    2.2.3 并行版本 25

    2.3 第二个例子:文件搜索 32

    2.3.1 公共类 32

    2.3.2 串行版本 32

    2.3.3 并发版本 33

    2.3.4 对比解决方案 37

    2.4 小结 38

    第3 章 管理大量线程:执行器 39

    3.1 执行器简介 39

    3.1.1 执行器的基本特征 39

    3.1.2 执行器框架的基本组件 40

    3.2 第 一个例子:k-最近邻算法 40

    3.2.1 k-最近邻算法:串行版本 41

    3.2.2 k-最近邻算法:细粒度并发版本 42

    3.2.3 k-最近邻算法:粗粒度并发版本 45

    3.2.4 对比解决方案 46

    3.3 第二个例子:客户端/服务器环境下的并发处理 48

    3.3.1 客户端/服务器:串行版 48

    3.3.2 客户端/服务器:并行版本 51

    3.3.3 额外的并发服务器组件 54

    3.3.4 对比两种解决方案 59

    3.3.5 其他重要方法 61

    3.4 小结 62

    第4 章 充分利用执行器 63

    4.1 执行器的高级特性 63

    4.1.1 任务的撤销 63

    4.1.2 任务执行调度 64

    4.1.3 重载执行器方法 64

    4.1.4 更改一些初始化参数 64

    4.2 第 一个例子:高级服务器应用程序 65

    4.2.1 ServerExecutor 类 65

    4.2.2 命令类 70

    4.2.3 服务器部件 72

    4.2.4 客户端部件 78

    4.3 第二个例子:执行周期性任务 79

    4.3.1 公共部件 79

    4.3.2 基础阅读器 81

    4.3.3 高级阅读器 84

    4.4 有关执行器的其他信息 87

    4.5 小结 87

    第5 章 从任务获取数据:Callable接口与Future 接口 88

    5.1 Callable 接口和Future 接口简介 88

    5.1.1 Callable 接口 88

    5.1.2 Future 接口 89

    5.2 第 一个例子:单词最佳匹配算法 89

    5.2.1 公共类 90

    5.2.2 最佳匹配算法:串行版本 91

    5.2.3 最佳匹配算法:第 一个并发版本 92

    5.2.4 最佳匹配算法:第二个并发版本 95

    5.2.5 单词存在算法:串行版本 96

    5.2.6 单词存在算法:并行版本 98

    5.2.7 对比解决方案 100

    5.3 第二个例子:为文档集创建倒排索引 102

    5.3.1 公共类 103

    5.3.2 串行版本 104

    5.3.3 第 一个并发版本:每个文档一个任务 105

    5.3.4 第二个并发版本:每个任务多个文档 109

    5.3.5 对比解决方案 112

    5.3.6 其他相关方法 113

    5.4 小结 113

    第6 章 运行分为多阶段的任务:Phaser 类 115

    6.1 Phaser 类简介 115

    6.1.1 参与者的注册与注销 116

    6.1.2 同步阶段变更 116

    6.1.3 其他功能 116

    6.2 第 一个例子:关键字抽取算法 117

    6.2.1 公共类 118

    6.2.2 串行版本 121

    6.2.3 并发版本 123

    6.2.4 对比两种解决方案 128

    6.3 第二个例子:遗传算法 129

    6.3.1 公共类 130

    6.3.2 串行版本 132

    6.3.3 并发版本 134

    6.3.4 对比两种解决方案 139

    6.4 小结 141

    第7 章 优化分治解决方案:

    Fork/Join 框架 142

    7.1 Fork/Join 框架简介 142

    7.1.1 Fork/Join 框架的基本特征 143

    7.1.2 Fork/Join 框架的局限性 143

    7.1.3 Fork/Join 框架的组件 144

    7.2 第 一个例子:k-means 聚类算法 144

    7.2.1 公共类 145

    7.2.2 串行版本 149

    7.2.3 并发版本 151

    7.2.4 对比解决方案 155

    7.3 第二个例子:数据筛选算法 157

    7.3.1 公共特性 157

    7.3.2 串行版 157

    7.3.3 并发版本 159

    7.3.4 对比两个版本 165

    7.4 第三个例子:归并排序算法 166

    7.4.1 共享类 166

    7.4.2 串行版本 167

    7.4.3 并发版本 169

    7.4.4 对比两个版本 172

    7.5 Fork/Join 框架的其他方法 172

    7.6 小结 173

    第8 章 使用并行流处理大规模数据集:MapReduce 模型 174

    8.1 流的简介 174

    8.1.1 流的基本特征 174

    8.1.2 流的组成部分 175

    8.1.3 MapReduce 与MapCollect 177

    8.2 第 一个例子:数值综合分析应用程序 178

    8.2.1 并发版本 178

    8.2.2 串行版本 185

    8.2.3 对比两个版本 186

    8.3 第二个例子:信息检索工具 186

    8.3.1 约简操作简介 187

    8.3.2 第 一种方式:全文档查询 188

    8.3.3 第二种方式:约简的文档查询 191

    8.3.4 第三种方式:生成一个含有结果的HTML 文件 191

    8.3.5 第四种方式:预先载入倒排索引 194

    8.3.6 第五种方式:使用我们的执行器 195

    8.3.7 从倒排索引获取数据:ConcurrentData 类 196

    8.3.8 获取文件中的单词数 196

    8.3.9 获取文件的平均tfxidf 值 196

    8.3.10 获取索引中的最大tfxidf值和最小tfxidf 值 197

    8.3.11 ConcurrentMain 类 198

    8.3.12 串行版 199

    8.3.13 对比两种解决方案 199

    8.4 小结 202

    第9 章 使用并行流处理大规模数据集:MapCollect 模型 203

    9.1 使用流收集数据 203

    9.2 第 一个例子:无索引条件下的数据搜索 205

    9.2.1 基本类 205

    9.2.2 第 一种方式:基本搜索 207

    9.2.3 第二种方式:高级搜索 209

    9.2.4 本例的串行实现 211

    9.2.5 对比实现方案 211

    9.3 第二个例子:推荐系统 212

    9.3.1 公共类 212

    9.3.2 推荐系统:主类 213

    9.3.3 ConcurrentLoaderAccumulator 类 215

    9.3.4 串行版 216

    9.3.5 对比两个版本 216

    9.4 第三个例子:社交网络中的共同联系人 217

    9.4.1 基本类 218

    9.4.2 并发版本 219

    9.4.3 串行版本 223

    9.4.4 对比两个版本 223

    9.5 小结 224

    第 10 章 异步流处理:反应流 225

    10.1 Java 反应流简介 225

    10.1.1 Flow.Publisher 接口 226

    10.1.2 Flow.Subscriber 接口 226

    10.1.3 Flow.Subscription 接口 226

    10.1.4 SubmissionPublisher 类 226

    10.2 第 一个例子:面向事件通知的集中式系统 227

    10.2.1 Event 类 227

    10.2.2 Producer 类 227

    10.2.3 Consumer 类 228

    10.2.4 Main 类 230

    10.3 第二个例子:新闻系统 231

    10.3.1 News 类 232

    10.3.2 发布者相关的类 232

    10.3.3 Consumer 类 235

    10.3.4 Main 类 236

    10.4 小结 238

    第 11 章 探究并发数据结构和同步工具 240

    11.1 并发数据结构 240

    11.1.1 阻塞型数据结构和非阻塞型数据结构 241

    11.1.2 并发数据结构 241

    11.1.3 使用新特性 244

    11.1.4 原子变量 251

    11.1.5 变量句柄 252

    11.2 同步机制 254

    11.2.1 CommonTask 类 255

    11.2.2 Lock 接口 255

    11.2.3 Semaphore 类 256

    11.2.4 CountDownLatch 类 258

    11.2.5 CyclicBarrier 类 259

    11.2.6 CompletableFuture 类 261

    11.3 小结 268

    第 12 章 测试与监视并发应用程序 269

    12.1 监视并发对象 269

    12.1.1 监视线程 269

    12.1.2 监视锁 270

    12.1.3 监视执行器 272

    12.1.4 监视Fork/Join 框架 273

    12.1.5 监视Phaser 274

    12.1.6 监视流API 275

    12.2 监视并发应用程序 276

    12.2.1 Overview 选项卡 278

    12.2.2 Memory 选项卡 279

    12.2.3 Threads 选项卡 280

    12.2.4 Classes 选项卡 280

    12.2.5 VM Summary 选项卡 281

    12.2.6 MBeans 选项卡 283

    12.2.7 About 选项卡 284

    12.3 测试并发应用程序 284

    12.3.1 使用MultithreadedTC 测试并发应用程序 285

    12.3.2 使用Java Pathfinder 测试并发应用程序 288

    12.4 小结 293

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

    13.1 Clojure 的并发处理 294

    13.1.1 使用Java 元素 295

    13.1.2 引用类型 295

    13.1.3 Ref 对象 298

    13.1.4 Delay 299

    13.1.5 Future 300

    13.1.6 Promise 301

    13.2 Groovy 及其GPars 库的并发处理 302

    13.3 软件事务性内存 302

    13.3.1 使用Java 元素 302

    13.3.2 数据并行处理 303

    13.3.3 Fork/Join 处理 307

    13.3.4 Actor 308

    13.3.5 Agent 315

    13.3.6 Dataf low 316

    13.4 Scala 的并发处理 322

    13.4.1 Scala 中的Future 对象 322

    13.4.2 Promise 328

    13.5 小结 329
  • 内容简介:
    Java 提供了一套非常强大的并发API,可以轻松实现任何类型的并发应用程序。本书讲述Java 并发API *重要的元素,包括执行器框架、Phaser 类、Fork/Join 框架、流API、并发数据结构、同步机制,并展示如何在实际开发中使用它们。此外,本书还介绍了设计并发应用程序的方法论、设计模式、实现良好并发应用程序的提示和技巧、测试并发应用程序的工具和方法,以及如何使用面向Java 虚拟机的其他编程语言实现并发应用程序。
  • 作者简介:
    哈维尔·费尔南德斯·冈萨雷斯(Javier Fernández González):软件架构师,拥有十余年Java研发经验,对J2EE、Struts框架和使用Java开发大规模数据处理的应用程序颇有心得,为保险、医疗、交通等领域客户开发了许多J2EE Web应用程序。
  • 目录:
    第 1 章 第 一步:并发设计原理    1

    1.1 基本的并发概念 1

    1.1.1 并发与并行 1

    1.1.2 同步 2

    1.1.3 不可变对象 2

    1.1.4 原子操作和原子变量 3

    1.1.5 共享内存与消息传递 3

    1.2 并发应用程序中可能出现的问题 3

    1.2.1 数据竞争 3

    1.2.2 死锁 4

    1.2.3 活锁 4

    1.2.4 资源不足 4

    1.2.5 优先权反转 5

    1.3 设计并发算法的方法论 5

    1.3.1 起点:算法的一个串行版本 5

    1.3.2 第 1 步:分析 5

    1.3.3 第 2 步:设计 5

    1.3.4 第3 步:实现 6

    1.3.5 第4 步:测试 6

    1.3.6 第5 步:调整 6

    1.3.7 结论 7

    1.4 Java 并发API 8

    1.4.1 基本并发类 8

    1.4.2 同步机制 8

    1.4.3 执行器 9

    1.4.4 Fork/Join 框架 9

    1.4.5 并行流 9

    1.4.6 并发数据结构 9

    1.5 并发设计模式 10

    1.5.1 信号模式 10

    1.5.2 会合模式 11

    1.5.3 互斥模式 11

    1.5.4 多元复用模式 12

    1.5.5 栅栏模式 12

    1.5.6 双重检查锁定模式 12

    1.5.7 读 写锁模式 13

    1.5.8 线程池模式 14

    1.5.9 线程局部存储模式 14

    1.6 设计并发算法的提示和技巧 14

    1.6.1 正确识别独立任务 14

    1.6.2 在尽可能高的层面上实施并发处理 15

    1.6.3 考虑伸缩性 15

    1.6.4 使用线程安全API 15

    1.6.5 绝不要假定执行顺序 16

    1.6.6 在静态和共享场合尽可能使用局部线程变量 16

    1.6.7 寻找更易于并行处理的算法版本 17

    1.6.8 尽可能使用不可变对象 17

    1.6.9 通过对锁排序来避免死锁 17

    1.6.10 使用原子变量代替同步 18

    1.6.11 占有锁的时间尽可能短 19

    1.6.12 谨慎使用延迟初始化 19

    1.6.13 避免在临界段中使用阻塞操作 19

    1.7 小结 20

    第 2 章 使用基本元素:Thread 和Runnable 21

    2.1 Java 中的线程 21

    2.1.1 Java 中的线程:特征和状态 22

    2.1.2 Thread 类和Runnable 接口 23

    2.2 第 一个例子:矩阵乘法 24

    2.2.1 公共类 24

    2.2.2 串行版本 25

    2.2.3 并行版本 25

    2.3 第二个例子:文件搜索 32

    2.3.1 公共类 32

    2.3.2 串行版本 32

    2.3.3 并发版本 33

    2.3.4 对比解决方案 37

    2.4 小结 38

    第3 章 管理大量线程:执行器 39

    3.1 执行器简介 39

    3.1.1 执行器的基本特征 39

    3.1.2 执行器框架的基本组件 40

    3.2 第 一个例子:k-最近邻算法 40

    3.2.1 k-最近邻算法:串行版本 41

    3.2.2 k-最近邻算法:细粒度并发版本 42

    3.2.3 k-最近邻算法:粗粒度并发版本 45

    3.2.4 对比解决方案 46

    3.3 第二个例子:客户端/服务器环境下的并发处理 48

    3.3.1 客户端/服务器:串行版 48

    3.3.2 客户端/服务器:并行版本 51

    3.3.3 额外的并发服务器组件 54

    3.3.4 对比两种解决方案 59

    3.3.5 其他重要方法 61

    3.4 小结 62

    第4 章 充分利用执行器 63

    4.1 执行器的高级特性 63

    4.1.1 任务的撤销 63

    4.1.2 任务执行调度 64

    4.1.3 重载执行器方法 64

    4.1.4 更改一些初始化参数 64

    4.2 第 一个例子:高级服务器应用程序 65

    4.2.1 ServerExecutor 类 65

    4.2.2 命令类 70

    4.2.3 服务器部件 72

    4.2.4 客户端部件 78

    4.3 第二个例子:执行周期性任务 79

    4.3.1 公共部件 79

    4.3.2 基础阅读器 81

    4.3.3 高级阅读器 84

    4.4 有关执行器的其他信息 87

    4.5 小结 87

    第5 章 从任务获取数据:Callable接口与Future 接口 88

    5.1 Callable 接口和Future 接口简介 88

    5.1.1 Callable 接口 88

    5.1.2 Future 接口 89

    5.2 第 一个例子:单词最佳匹配算法 89

    5.2.1 公共类 90

    5.2.2 最佳匹配算法:串行版本 91

    5.2.3 最佳匹配算法:第 一个并发版本 92

    5.2.4 最佳匹配算法:第二个并发版本 95

    5.2.5 单词存在算法:串行版本 96

    5.2.6 单词存在算法:并行版本 98

    5.2.7 对比解决方案 100

    5.3 第二个例子:为文档集创建倒排索引 102

    5.3.1 公共类 103

    5.3.2 串行版本 104

    5.3.3 第 一个并发版本:每个文档一个任务 105

    5.3.4 第二个并发版本:每个任务多个文档 109

    5.3.5 对比解决方案 112

    5.3.6 其他相关方法 113

    5.4 小结 113

    第6 章 运行分为多阶段的任务:Phaser 类 115

    6.1 Phaser 类简介 115

    6.1.1 参与者的注册与注销 116

    6.1.2 同步阶段变更 116

    6.1.3 其他功能 116

    6.2 第 一个例子:关键字抽取算法 117

    6.2.1 公共类 118

    6.2.2 串行版本 121

    6.2.3 并发版本 123

    6.2.4 对比两种解决方案 128

    6.3 第二个例子:遗传算法 129

    6.3.1 公共类 130

    6.3.2 串行版本 132

    6.3.3 并发版本 134

    6.3.4 对比两种解决方案 139

    6.4 小结 141

    第7 章 优化分治解决方案:

    Fork/Join 框架 142

    7.1 Fork/Join 框架简介 142

    7.1.1 Fork/Join 框架的基本特征 143

    7.1.2 Fork/Join 框架的局限性 143

    7.1.3 Fork/Join 框架的组件 144

    7.2 第 一个例子:k-means 聚类算法 144

    7.2.1 公共类 145

    7.2.2 串行版本 149

    7.2.3 并发版本 151

    7.2.4 对比解决方案 155

    7.3 第二个例子:数据筛选算法 157

    7.3.1 公共特性 157

    7.3.2 串行版 157

    7.3.3 并发版本 159

    7.3.4 对比两个版本 165

    7.4 第三个例子:归并排序算法 166

    7.4.1 共享类 166

    7.4.2 串行版本 167

    7.4.3 并发版本 169

    7.4.4 对比两个版本 172

    7.5 Fork/Join 框架的其他方法 172

    7.6 小结 173

    第8 章 使用并行流处理大规模数据集:MapReduce 模型 174

    8.1 流的简介 174

    8.1.1 流的基本特征 174

    8.1.2 流的组成部分 175

    8.1.3 MapReduce 与MapCollect 177

    8.2 第 一个例子:数值综合分析应用程序 178

    8.2.1 并发版本 178

    8.2.2 串行版本 185

    8.2.3 对比两个版本 186

    8.3 第二个例子:信息检索工具 186

    8.3.1 约简操作简介 187

    8.3.2 第 一种方式:全文档查询 188

    8.3.3 第二种方式:约简的文档查询 191

    8.3.4 第三种方式:生成一个含有结果的HTML 文件 191

    8.3.5 第四种方式:预先载入倒排索引 194

    8.3.6 第五种方式:使用我们的执行器 195

    8.3.7 从倒排索引获取数据:ConcurrentData 类 196

    8.3.8 获取文件中的单词数 196

    8.3.9 获取文件的平均tfxidf 值 196

    8.3.10 获取索引中的最大tfxidf值和最小tfxidf 值 197

    8.3.11 ConcurrentMain 类 198

    8.3.12 串行版 199

    8.3.13 对比两种解决方案 199

    8.4 小结 202

    第9 章 使用并行流处理大规模数据集:MapCollect 模型 203

    9.1 使用流收集数据 203

    9.2 第 一个例子:无索引条件下的数据搜索 205

    9.2.1 基本类 205

    9.2.2 第 一种方式:基本搜索 207

    9.2.3 第二种方式:高级搜索 209

    9.2.4 本例的串行实现 211

    9.2.5 对比实现方案 211

    9.3 第二个例子:推荐系统 212

    9.3.1 公共类 212

    9.3.2 推荐系统:主类 213

    9.3.3 ConcurrentLoaderAccumulator 类 215

    9.3.4 串行版 216

    9.3.5 对比两个版本 216

    9.4 第三个例子:社交网络中的共同联系人 217

    9.4.1 基本类 218

    9.4.2 并发版本 219

    9.4.3 串行版本 223

    9.4.4 对比两个版本 223

    9.5 小结 224

    第 10 章 异步流处理:反应流 225

    10.1 Java 反应流简介 225

    10.1.1 Flow.Publisher 接口 226

    10.1.2 Flow.Subscriber 接口 226

    10.1.3 Flow.Subscription 接口 226

    10.1.4 SubmissionPublisher 类 226

    10.2 第 一个例子:面向事件通知的集中式系统 227

    10.2.1 Event 类 227

    10.2.2 Producer 类 227

    10.2.3 Consumer 类 228

    10.2.4 Main 类 230

    10.3 第二个例子:新闻系统 231

    10.3.1 News 类 232

    10.3.2 发布者相关的类 232

    10.3.3 Consumer 类 235

    10.3.4 Main 类 236

    10.4 小结 238

    第 11 章 探究并发数据结构和同步工具 240

    11.1 并发数据结构 240

    11.1.1 阻塞型数据结构和非阻塞型数据结构 241

    11.1.2 并发数据结构 241

    11.1.3 使用新特性 244

    11.1.4 原子变量 251

    11.1.5 变量句柄 252

    11.2 同步机制 254

    11.2.1 CommonTask 类 255

    11.2.2 Lock 接口 255

    11.2.3 Semaphore 类 256

    11.2.4 CountDownLatch 类 258

    11.2.5 CyclicBarrier 类 259

    11.2.6 CompletableFuture 类 261

    11.3 小结 268

    第 12 章 测试与监视并发应用程序 269

    12.1 监视并发对象 269

    12.1.1 监视线程 269

    12.1.2 监视锁 270

    12.1.3 监视执行器 272

    12.1.4 监视Fork/Join 框架 273

    12.1.5 监视Phaser 274

    12.1.6 监视流API 275

    12.2 监视并发应用程序 276

    12.2.1 Overview 选项卡 278

    12.2.2 Memory 选项卡 279

    12.2.3 Threads 选项卡 280

    12.2.4 Classes 选项卡 280

    12.2.5 VM Summary 选项卡 281

    12.2.6 MBeans 选项卡 283

    12.2.7 About 选项卡 284

    12.3 测试并发应用程序 284

    12.3.1 使用MultithreadedTC 测试并发应用程序 285

    12.3.2 使用Java Pathfinder 测试并发应用程序 288

    12.4 小结 293

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

    13.1 Clojure 的并发处理 294

    13.1.1 使用Java 元素 295

    13.1.2 引用类型 295

    13.1.3 Ref 对象 298

    13.1.4 Delay 299

    13.1.5 Future 300

    13.1.6 Promise 301

    13.2 Groovy 及其GPars 库的并发处理 302

    13.3 软件事务性内存 302

    13.3.1 使用Java 元素 302

    13.3.2 数据并行处理 303

    13.3.3 Fork/Join 处理 307

    13.3.4 Actor 308

    13.3.5 Agent 315

    13.3.6 Dataf low 316

    13.4 Scala 的并发处理 322

    13.4.1 Scala 中的Future 对象 322

    13.4.2 Promise 328

    13.5 小结 329
查看详情
相关图书 / 更多
精通Java并发编程第2版
精通 Power Query
(加拿大)肯·普尔斯
精通Java并发编程第2版
精通套期保值
李录林 著
精通Java并发编程第2版
精通推荐算法:核心模块+经典模型+代码详解
谢杨易
精通Java并发编程第2版
精通式学习法:基于提高学生能力的学习方法(“翻转课堂”先行者乔纳森·伯格曼最新作品,众多教育名家联袂推荐)
(美)乔纳森·伯格曼著,段文静译;中青文 出品
精通Java并发编程第2版
精通STM32F4(HAL库版)(下)
刘军 凌柱宁 徐伟健 江荧
精通Java并发编程第2版
精通STM32F4(HAL库版)(上)
刘军 凌柱宁 徐伟健 江荧
精通Java并发编程第2版
精通FrontPage XP(中文版)
中国IT培训工程编委会 编
精通Java并发编程第2版
精通咬合重建——解读牙列不齐、牙周病、多牙缺失
吴松涛 周茂强 译;[日]上田 秀朗
精通Java并发编程第2版
精通Shiny(Mastering Shiny)
Hadley Wickham
精通Java并发编程第2版
精通Apache Pulsar:可伸缩云原生事件流实践
[美]Jowanza Joseph(乔万扎·约瑟夫
精通Java并发编程第2版
精通嵌入式Linux编程
[美]弗兰克·瓦斯奎兹 著;陈会翔 译
精通Java并发编程第2版
精通Transformer:从零开始构建最先进的NLP模型
[伊朗]梅萨姆·阿斯加里-切纳格卢 著;江红 余青松 余靖 译;[土耳其]萨瓦斯·伊尔蒂利姆
您可能感兴趣 / 更多
精通Java并发编程第2版
钱的秘密(5册精装礼盒)边玩边学的财商绘本,附赠: “家庭存钱指南”卡牌游戏,一套“我是理财小能手”财商培养游戏
[西]孔奇·卢比奥 (西) 巴勃罗·拉米雷斯 等/著 (西) 巴勃罗·拉米雷斯 (西)曼努埃尔·罗梅罗/绘 佟 画/译
精通Java并发编程第2版
为什么我们相信阴谋论(你每天怀疑的,到底是什么?)
[西]拉蒙·诺格拉斯 著;王琪 译;星文文化 出品
精通Java并发编程第2版
与自己的情绪相遇 情绪管理认知哲学绘本
[西]古斯塔沃·普埃尔塔·莱斯/著 (西)埃琳娜·奥德里奥佐拉 绘
精通Java并发编程第2版
自我疗愈(了解你的大脑,控制你的情绪,改善你的生活)
[西]玛丽安·罗哈斯·埃斯塔普 著;张晰雯 译
精通Java并发编程第2版
和孩子聊聊人工智能 给孩子的人工智能入门书
[西]谜题协会 著,[葡]安娜·塞沙斯 绘
精通Java并发编程第2版
看!这里有颗蛋 0-3岁首脑协调游戏书
[西]埃琳娜·奥德里奥佐拉 著绘
精通Java并发编程第2版
美国国家地理 宇宙的边界(精装)
[西]伊格纳西·里巴斯
精通Java并发编程第2版
美国国家地理 太阳(精装)
[西]伊格纳西·里巴斯
精通Java并发编程第2版
美国国家地理 月球(精装)
[西]伊格纳西·里巴斯
精通Java并发编程第2版
美国国家地理 地球(精装)
[西]伊格纳西·里巴斯
精通Java并发编程第2版
美国国家地理 火星(精装)
[西]伊格纳西·里巴斯
精通Java并发编程第2版
美国国家地理 太阳系(精装)
[西]伊格纳西·里巴斯