×
暂无评论
图文详情
  • ISBN:9787302627852
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:328
  • 出版时间:2023-05-01
  • 条形码:9787302627852 ; 978-7-302-62785-2

本书特色

邀请多个高校的知名学者和多个公司的CEO为本教材撰写序,本教材对并行编程的基本概念和技术原理进行了详解,适合作为普通高校本科生和研究生教材,内容深入浅出,讲解详尽。

内容简介

本书对并行编程过程中的相关基本概念、原理、技术、方法进行详细讲解,以时下流行的Java语言为基础,主要针对基于共享内存的并行编程方法,内容涉及并行编程基本概念、线程创建和管理、同步和异步编程、线程协作、自定义并发类等内容。本书在讲解相关原理和技术的同时,使用大量实例进行演示,力求做到知识点明白透彻。 本书内容优选、结构合理、讲解详尽、例题丰富,适合作为高等院校本科生和研究生的教材,是高等院校师生和IT领域在职人员学习并行编程技术的理想教材和工具书,也可作为高性能计算技术人员的自修参考用书。

目录

目录



第1章绪论1

1.1概述1

1.2并发与并行2

1.2.1并发2

1.2.2并行3

1.3Flynn分类4

1.4并行编程模型4

1.4.1多线程并行模型4

1.4.2共享内存并行模型5

1.4.3分布式并行模型6

1.4.4混合并行编程模型7

1.4.5数据并行模型7

1.5并行程序设计方法8

1.5.1分治8

1.5.2流水线9

1.5.3消息传递10

1.6加速比10

1.6.1阿姆达尔定律10

1.6.2高斯特凡定律11

1.7并行程序评判标准11

1.8Java并行13

1.8.1并行特性13

1.8.2内存模型14

1.9程序运行说明15

习题17

第2章线程18

2.1基本概念18

2.1.1进程与线程18

2.1.2超线程18

2.2线程的创建19

2.2.1不带返回值的线程——从Thread类继承19

2.2.2不带返回值的线程——实现Runnable接口22

2.2.3带返回值的线程——实现Callable接口24

2.2.4简化线程创建代码25

2.3线程的属性28

2.3.1线程标识符28

2.3.2线程名30

2.3.3线程状态34

2.3.4优先级37

习题41

并行编程目录第3章线程的管理42

3.1线程数目的确定42

3.2线程运行的控制43

3.2.1等待线程执行完毕43

3.2.2休眠47

3.2.3中断48

3.2.4让出CPU的使用权50

3.3守护线程52

3.4线程分组55

3.5线程本地化58

3.6线程开销问题60

习题62

第4章锁63

4.1概述63

4.2基本概念63

4.2.1数据竞争63

4.2.2线程安全64

4.2.3临界区65

4.2.4监视器65

4.3为什么使用同步控制66

4.4同步锁68

4.4.1同步方法68

4.4.2同步块70

4.5可重入锁72

4.6读写锁80

4.7邮戳锁87

4.8锁的缺点94

4.8.1锁竞争94

4.8.2优先权反转95

4.8.3死锁95

4.8.4活锁98

4.9本章小结100

习题101

第5章原子操作102

5.1原子性102

5.2基本类型的原子操作103

5.3引用类型的原子操作106

5.4ABA问题108

5.5扩展的原子引用类型111

5.5.1类AtomicMarkableReference111

5.5.2类AtomicStampedReference114

5.6原子操作数组类117

5.7volatile关键字122

5.7.1可见性122

5.7.2原子性122

5.7.3指令重排122

5.8本章小结123

习题124

第6章异步模式125

6.1基本概念125

6.1.1同步和异步125

6.1.2阻塞和非阻塞125

6.1.3回调126

6.1.4I/O密集型任务和计算密集型任务126

6.2接口Future126

6.3类FutureTask127

6.4类CompletableFuture133

6.4.1类的定义133

6.4.2创建对象133

6.4.3获取返回值134

6.4.4执行模型135

6.4.5多个异步任务处理144

6.4.6使用回调函数147

6.4.7综合应用实例152

6.5本章小结155

习题156

第7章线程协作157

7.1通过共享变量进行协作157

7.2等待集合160

7.3等待与通知160

7.4条件变量168

7.5交换器174

习题178

第8章线程障栅179

8.1概述179

8.2循环障栅179

8.3倒计时门闩184

8.4信号量188

8.5阶段193

习题201

第9章线程池管理202

9.1线程池202

9.1.1为什么使用线程池202

9.1.2相关接口和类202

9.1.3应用举例207

9.2固定数目的线程池209

9.3延迟执行、周期性执行的执行器214

9.4取消任务的执行219

9.5任务装载和结果处理的分离220

9.6管理被拒绝的任务223

习题225

第10章并行模式Fork/Join226

10.1基本概念226

10.1.1任务划分226

10.1.2负载均衡227

10.1.3工作窃取227

10.2Fork/Join框架的编程模式228

10.3线程池ForkJoinPool229

10.3.1创建ForkJoinPool对象229

10.3.2使用ForkJoinPool230

10.4任务ForkJoinTask231

10.4.1从类RecursiveAction继承创建任务232

10.4.2从类RecursiveTask继承创建任务238

10.4.3任务的运行方式242

10.4.4任务的取消245

10.5本章小结247

习题248

第11章线程安全的集合249

11.1线程安全的哈希表249

11.1.1类ConcurrentHashMap249

11.1.2类HashTable252

11.1.3方法Collections.synchronizedMap253

11.2线程安全的双端队列253

11.3线程安全的跳表257

11.4同步队列259

11.5随机数产生262

11.6并行流264

11.6.1函数式接口Predicate264

11.6.2流的创建265

11.6.3流的操作266

习题268

第12章定制并行类269

12.1定制同步类269

12.1.1定制锁269

12.1.2定制原子操作272

12.2定制线程工厂275

12.3定制线程池277

12.4定制线程执行器279

12.5定制周期性任务281

12.6定制与Fork/Join框架相关的并发类285

12.6.1类ForkJoinWorkerThread285

12.6.2接口ForkJoinPool.ForkJoinWorkerThreadFactory285

12.6.3自定义Fork/Join框架中的线程285

12.6.4自定义任务288

习题291

第13章并行程序设计实例292

13.1桶排序及其并行化292

13.1.1桶排序过程292

13.1.2并行化292

13.2奇偶排序及其并行化297

13.2.1奇偶排序算法的过程297

13.2.2并行化300

13.3加密/解密算法及其并行化306

13.3.1加密/解密过程及相关代码306

13.3.2并行化314


展开全部

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航