图书介绍
图灵程序设计丛书 精通Java并发编程 第2版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (西)哈维尔·费尔南德斯·冈萨雷斯著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115491664
- 出版时间:2018
- 标注页数:330页
- 文件大小:84MB
- 文件页数:344页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
图灵程序设计丛书 精通Java并发编程 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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并发API8
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 使用线程安全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.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与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 获取文件的平均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 Concurrent Loader-Accumulator类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 监视Phaser274
12.1.6 监视流API275
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以及Scala294
13.1 Clojure的并发处理294
13.1.1 使用Java元素295
13.1.2 引用类型295
13.1.3 Ref对象298
13.1.4 Delay299
13.1.5 Future300
13.1.6 Promise301
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 Actor308
13.3.5 Agent315
13.3.6 Dataflow316
13.4 Scala的并发处理322
13.4.1 Scala中的Future对象322
13.4.2 Promise328
13.5 小结329
热门推荐
- 1359157.html
- 1157858.html
- 122735.html
- 2175016.html
- 1277872.html
- 1296488.html
- 294626.html
- 1275445.html
- 2202204.html
- 2509580.html
- http://www.ickdjs.cc/book_3418591.html
- http://www.ickdjs.cc/book_2362513.html
- http://www.ickdjs.cc/book_1199293.html
- http://www.ickdjs.cc/book_3121357.html
- http://www.ickdjs.cc/book_298995.html
- http://www.ickdjs.cc/book_3333354.html
- http://www.ickdjs.cc/book_1061839.html
- http://www.ickdjs.cc/book_656413.html
- http://www.ickdjs.cc/book_3738464.html
- http://www.ickdjs.cc/book_3737837.html