图书介绍
并发编程理论与实践PDF|Epub|txt|kindle电子书版本网盘下载
![并发编程理论与实践](https://www.shukui.net/cover/32/32447436.jpg)
- 张杨著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302516781
- 出版时间:2019
- 标注页数:278页
- 文件大小:81MB
- 文件页数:288页
- 主题词:JAVA语言-程序设计-高等学校-教材
PDF下载
下载说明
并发编程理论与实践PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 绪论1
1.1 概述1
1.2 概念和术语2
1.2.1 并发与并行2
1.2.2 串行执行和顺序执行4
1.2.3 超线程4
1.2.4 加速比5
1.3 Java并发方面的特性5
1.4 并发卐并行程序设计的方法6
1.4.1 分治方法6
1.4.2 流水线7
1.4.3 消息传递8
1.5 并发程序的评判标准8
1.6 Java内存模型9
1.7 程序的运行说明10
第2章 线程13
2.1 进程与线程13
2.2 线程的创建14
2.2.1 继承Thread类14
2.2.2 实现Runnable接口16
2.2.3 两种方法的比较18
2.2.4 相关说明18
2.3 线程的属性18
2.3.1 线程标识符18
2.3.2 线程名20
2.3.3 线程状态23
2.3.4 线程的优先级和调度27
2.3.5 守护线程30
2.4 线程管理33
2.4.1 join()方法33
2.4.2 sleep()方法37
2.4.3 yield()方法38
2.4.4 interrupt()方法38
2.4.5 其他方法40
2.5 线程分组40
2.6 线程数目的确定43
2.7 线程本地化44
2.8 带返回值的线程47
2.8.1 Callable接口47
2.8.2 Future接口47
2.8.3 Callable与Runnable的比较50
2.9 案例分析51
小结61
习题61
第3章 线程同步控制62
3.1 为什么要使用同步控制62
3.2 基本概念64
3.2.1 数据竞争64
3.2.2 临界区65
3.2.3 监视器65
3.2.4 阻塞和非阻塞66
3.2.5 线程安全与线程不安全66
3.3 锁67
3.3.1 同步锁67
3.3.2 可重入锁70
3.3.3 读写锁77
3.3.4 邮戳锁83
3.3.5 几种锁机制的比较89
3.3.6 锁的不足之处90
3.3.7 减少锁竞争的方法90
3.3.8 死锁和活锁91
3.4 volatile变量96
3.5 原子操作96
3.5.1 基本类型的原子类97
3.5.2 一般引用类型的原子类100
3.5.3 ABA问题102
3.5.4 扩展的原子引用类型105
3.5.5 原子操作数组类111
小结116
习题117
第4章 线程间通信118
4.1 等待集合118
4.2 wait()巭notify()巭notifyAll()方法118
4.2.1 wait()方法118
4.2.2 notify()方法119
4.2.3 notifyAll()方法119
4.2.4 实例120
4.3 条件变量126
4.3.1 await()方法127
4.3.2 signal()方法128
4.3.3 signalAll()方法128
4.3.4 实例128
习题131
第5章 线程同步障栅132
5.1 障栅132
5.2 倒计时门闩137
5.3 信号量140
5.4 同步队列145
5.5 交换器148
5.6 阶段化处理152
习题160
第6章 线程执行器161
6.1 线程池161
6.1.1 Executor接口161
6.1.2 ExecutorService接口162
6.1.3 ThreadPoolExecutor类162
6.1.4 工厂类Executors163
6.1.5 使用线程执行器处理没有返回值的线程164
6.2 固定数目的线程执行器166
6.3 使用线程执行器处理有返回值的线程168
6.4 延迟执行、周期性执行的执行器171
6.4.1 ScheduledExecutorService接口171
6.4.2 ScheduledFuture接口172
6.4.3 举例173
6.5 取消任务的执行176
6.6 任务装载和结果处理的分离177
6.7 管理被拒绝的任务179
第7章 Fork巭Join框架183
7.1 概述183
7.2 相关知识184
7.2.1 负载均衡184
7.2.2 分治方法184
7.2.3 工作窃取算法185
7.3 Fork巭Join框架的编程模式185
7.4 ForkJoinPool类186
7.4.1 ForkJoinPool的创建186
7.4.2 ForkJoinPool的使用187
7.5 Fork巭Join框架中的任务188
7.5.1 任务的创建188
7.5.2 任务的运行方式196
7.5.3 任务的取消199
7.6 Fork巭Join框架的限制202
7.7 几种线程机制的比较202
习题202
第8章 流处理203
8.1 Lambda表达式203
8.1.1 Lambda表达式的定义203
8.1.2 Lambda表达式的使用204
8.2 函数式接口Predicate205
8.3 流206
8.3.1 流简介206
8.3.2 创建流207
8.3.3 流的操作208
第9章 自定义并发类211
9.1 自定义线程工厂211
9.2 自定义线程池213
9.3 在执行器中使用自定义的线程工厂215
9.4 自定义周期性任务216
9.5 自定义与Fork巭Join框架相关的并发类221
9.5.1 ForkJoinWorkerThread类221
9.5.2 ForkJoinPool.ForkJoinWorkerThreadFactory接口221
9.5.3 自定义Fork巭Join框架中的线程222
9.5.4 自定义任务224
9.6 自定义同步类227
9.6.1 自定义锁227
9.6.2 自定义原子操作231
习题233
第10章 线程安全的集合234
10.1 线程安全的双端队列234
10.2 线程安全的哈希表238
10.3 线程安全的跳表240
10.4 随机数产生242
10.5 并行数组244
第11章 多线程程序的性能和测试246
11.1 性能246
11.2 可伸缩性248
11.3 多线程程序的测试248
第12章 面向切面技术在并发编程中的应用249
12.1 相关知识249
12.1.1 面向切面编程249
12.1.2 Java注释接口251
12.2 类方法的并发执行254
12.2.1 问题的提出254
12.2.2 并行库255
12.2.3 基于面向方面技术的并行库易用性优化260
12.2.4 实验262
12.2.5 小结266
12.3 实现被标记的类方法的并发执行267
12.4 使用面向切面技术分离并发关注点269
12.4.1 问题演示269
12.4.2 重构框架271
12.4.3 实验评估274
习题277