• 精通Java并发编程
21年品牌 40万+商家 超1.5亿件商品

精通Java并发编程

12.42 1.4折 89 九五品

仅1件

北京通州
认证卖家担保交易快速发货售后保障

作者(西)哈维尔·费尔南德斯·冈萨雷斯(Javier Ferna

出版社人民邮电出版社

ISBN9787115491664

出版时间2018-10

版次1

装帧平装

开本16开

纸张胶版纸

页数329页

字数99999千字

定价89元

上书时间2024-12-17

纵列風

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九五品
商品描述
基本信息
书名:精通Java并发编程
定价:89.00元
作者:(西)哈维尔·费尔南德斯·冈萨雷斯(Javier Fernandez Gonzalez)
出版社:人民邮电出版社
出版日期:2018-10-01
ISBN:9787115491664
字数:508000
页码:329
版次:1
装帧:平装
开本:16开
商品重量:
编辑推荐

内容提要

目录
  
章步:并发设计原理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步:分析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.4Java并发API8

1.4.1基本并发类8

1.4.2同步机制8

1.4.3执行器9

1.4.4Fork/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使用线程安全API15

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和Runnable21

2.1Java中的线程21

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

2.1.2Thread类和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.1k-最近邻算法:串行版本41

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

3.2.3k-最近邻算法:粗粒度并发版本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.1ServerExecutor类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.1Callable接口和Future接口简介88

5.1.1Callable接口88

5.1.2Future接口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.1Phaser类简介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.1Fork/Join框架简介142

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

7.1.2Fork/Join框架的局限性143

7.1.3Fork/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.5Fork/Join框架的其他方法172

7.6小结173

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

8.1流的简介174

8.1.1流的基本特征174

8.1.2流的组成部分175

8.1.3MapReduce与MapCollect177

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获取文件的平均tfdf值196

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

8.3.11ConcurrentMain类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.3ConcurrentLoaderAccumulator类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

0章异步流处理:反应流225

10.1Java反应流简介225

10.1.1Flow.Publisher接口226

10.1.2Flow.Subscriber接口226

10.1.3Flow.Subscription接口226

10.1.4SubmissionPublisher类226

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

10.2.1Event类227

10.2.2Producer类227

10.2.3Consumer类228

10.2.4Main类230

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

10.3.1News类232

10.3.2发布者相关的类232

10.3.3Consumer类235

10.3.4Main类236

10.4小结238

1章探究并发数据结构和同步工具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.1CommonTask类255

11.2.2Lock接口255

11.2.3Semaphore类256

11.2.4CountDownLatch类258

11.2.5CyclicBarrier类259

11.2.6CompletableFuture类261

11.3小结268

2章测试与监视并发应用程序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监视Phaser274

12.1.6监视流API275

12.2监视并发应用程序276

12.2.1Overview选项卡278

12.2.2Memory选项卡279

12.2.3Threads选项卡280

12.2.4Classes选项卡280

12.2.5VMSummary选项卡281

12.2.6MBeans选项卡283

12.2.7About选项卡284

12.3测试并发应用程序284

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

12.3.2使用JavaPathfinder测试并发应用程序288

12.4小结293

3章JVM中的并发处理:Clojure、带有GPars库的Groovy以及Scala294

13.1Clojure的并发处理294

13.1.1使用Java元素295

13.1.2引用类型295

13.1.3Ref对象298

13.1.4Delay299

13.1.5Future300

13.1.6Promise301

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

13.3软件事务性内存302

13.3.1使用Java元素302

13.3.2数据并行处理303

13.3.3Fork/Join处理307

13.3.4Actor308

13.3.5Agent315

13.3.6Dataflow316

13.4Scala的并发处理322

13.4.1Scala中的Future对象322

13.4.2Promise328

13.5小结329

作者介绍
哈维尔·费尔南德斯·冈萨雷斯,软件架构师,拥有十余年Java研发经验,对J2EE、Struts框架和使用Java开发大规模数据处理的应用程序颇有心得,为保险、医疗、交通等领域客户开发了许多J2EE Web应用程序。
序言

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP