商品参数
图解Java多线程设计模式 |
| 定价 | 89.00 |
出版社 | 人民邮电出版社 |
版次 | 第1版 |
出版时间 | 2017年08月 |
开本 | 16开 |
作者 | 结城浩 |
装帧 | 平装 |
页数 | 0 |
字数 | 944 |
ISBN编码 | 9787115462749 |
内容介绍
本书通过具体的Java 程序,以浅显易懂的语言逐—说明了多线程和并发处理中常用的12 种设计模式。内容涉及线程的基础知识、线程的启动与终止、线程间的互斥处理与协作、线程的有效应用、线程的数量管理以及性能优化的注意事项等。此外,还介绍了—些多线程编程时容易出现的失误,以及多线程程序的阅读技巧等。在讲解过程中,不仅以图配文,理论结合实例,而且提供了运用模式解决具体问题的练习题和答案,帮助读者加深对多线程和并发处理的理解,并掌握其使用技巧。
作者介绍
结城浩(作者) 生于1963年,日本资深技术作家和程序员。在编程语言、设计模式、数学、加密技术等领域,编写了很多深受欢迎的入门书。代表作有《数学女孩》系列、《程序员的数学》、《图解密码技术》等。 侯振龙(译者) 管理科学与工程专业硕士,日语—级,软件开发工程师,具有十年对日软件开发经验,现就职于某日本独资企业。 杨文轩(译者) 华中科技大学硕士,擅长Web 2.0开发,有丰富的对日开发经验。现就职于日本方正股份有限公司。译作有《图解基础设施设计模式》《C现代编程:集成开发环境、设计模式、极限编程、测试驱动开发、重构、持续集成》及《图解设计模式》。
关联推荐
Java程序员必读,精选12种设计模式,轻松学习多线程编程
目录
序章1 Java线程 1
I1.1 Java线程 2
I1.2 何谓线程 2
明为跟踪处理流程,实为跟踪线程 2
单线程程序 3
多线程程序 4
Thread类的run方法和start方法 5
I1.3 线程的启动 9
线程的启动(1)——利用Thread类的子类 9
线程的启动(2)——利用Runnable接口 10
I1.4 线程的暂停 12
I1.5 线程的互斥处理 13
synchronized方法 14
synchronized代码块 17
I1.6 线程的协作 18
等待队列——线程休息室 19
wait方法——将线程放入等待队列 19
notify方法——从等待队列中取出线程 21
notifyAll方法——从等待队列中取出所有线程 23
wait、notify、notifyAll是Object类的方法 24
I1.7 线程的状态迁移 24
I1.8 线程相关的其他话题 26
I1.9 本章所学知识 26
I1.10 练习题 26
序章2 多线程程序的评价标准 31
I2.1 多线程程序的评价标准 32
安全性——不损坏对象 32
生存性——必要的处理能够被执行 32
可复用性——类可重复利用 33
性能——能快速、大批量地执行处理 33
评价标准总结 33
I2.2 本章所学知识 34
I2.3 练习题 34
第1章 Single Threaded Execution模式——能通过这座桥的只有—个人 35
1.1 Single Threaded Execution模式 36
1.2 示例程序1:不使用Single Threaded Execution模式的程序 36
Main类 37
非线程安全的Gate类 37
UserThread类 38
执行起来看看……出错了 39
为什么会出错呢 40
1.3 示例程序2:使用Single Threaded Execution模式的程序 41
线程安全的Gate类 41
synchronized的作用 42
1.4 Single Threaded Execution模式中的登场角色 43
1.5 拓展思路的要点 44
何时使用(可使用Single Threaded Execution模式的情况) 44
生存性与死锁 45
可复用性和继承反常 46
临界区的大小和性能 46
1.6 相关的设计模式 47
Guarded Suspension模式 47
Read-Write Lock模式 47
Immutable模式 47
Thread-Specific Storage模式 48
1.7 延伸阅读1:关于synchronized 48
synchronized语法与Before/After模式 48
synchronized在保护着什么 49
该以什么单位来保护呢 50
使用哪个锁保护 50
原子操作 51
long与double的操作不是原子的 51
1.8 延伸阅读2:java.util.concurrent包和计数信号量 52
计数信号量和Semaphore类 52
使用Semaphore类的示例程序 52
1.9 本章所学知识 55
1.10 练习题 55
第2章 Immutable模式——想破坏也破坏不了 61
2.1 Immutable模式 62
2.2 示例程序 62
使用Immutable模式的Person类 62
Main类 63
PrintPersonThread类 63
2.3 Immutable模式中的登场角色 65
2.4 拓展思路的要点 66
何时使用(可使用Immutable模式的情况) 66
考虑成对的mutable类和immutable类 [性能] 66
为了确保不可变性 [可复用性] 67
标准类库中用到的Immutable模式 67
2.5 相关的设计模式 69
Single Threaded Execution模式 69
Read-Write Lock模式 69
Flyweight模式 69
2.6 延伸阅读1:final 69
final的含义 69
2.7 延伸阅读2:集合类与多线程 71
示例1:非线程安全的java.util.ArrayList类 71
示例2:利用Collections.synchronizedList方法所进行的同步 74
示例3:使用copy-on-write的java.util.concurrent.CopyOnWriteArrayList类 75
2.8 本章所学知识 76
2.9 练习题 77
第3章 Guarded Suspension模式——等我准备好哦 81
3.1 Guarded Suspension模式 82
3.2 示例程序 82
Request类 83
RequestQueue类 84
ClientThread类 85
ServerThread类 85
Main类 86
java.util.Queue与java.util.LinkedList的操作 87
getRequest详解 87
putRequest详解 89
synchronized的含义 89
wait与锁 89
3.3 Guarded Suspension模式中的登场角色 90
3.4 拓展思路的要点 91
附加条件的synchronized 91
多线程版本的if 91
忘记改变状态与生存性 91
wait与notify/notifyAll的责任 [可复用性] 91
各种称呼 91
使用java.util.concurrent.LinkedBlockingQueue的示例程序 93
3.5 相关的设计模式 94
Single Threaded Execution模式 94
Balking模式 94
Producer-Consumer模式 94
Future模式 94
3.6 本章所学知识 95
3.7 练习题 95
第4章 Balking模式——不需要就算了 99
4.1 Balking模式 100
4.2 示例程序 100
Data类 100
SaverThread类 102
ChangerThread类 102
Main类 103
4.3 Balking模式中的登场角色 105
4.4 拓展思路的要点 106
何时使用(可使用Balking模式的情况) 106
balk结果的表示方式 107
4.5 相关的设计模式 107
Guarded Suspension模式 107
Observer模式 107
4.6 延伸阅读:超时 108
Balking模式和Guarded Suspension模式之间 108
wait何时终止呢 108
guarded timed的实现(使用wait) 109
synchronized中没有超时,也不能中断 110
java.util.concurrent中的超时 111
4.7 本章所学知识 111
4.8 练习题 112
第5章 Producer-Consumer模式——我来做,你来用 115
5.1 Producer-Consumer模式 116
5.2 示例程序 116
Main类 116
MakerThread类 117
EaterThread类 118
Table类 118
解读put方法 120
解读take方法 121
5.3 Producer-Consumer模式中的登场角色 122
5.4 拓展思路的要点 123
守护安全性的Channel角色(可复用性) 123
不可以直接传递吗 124
Channel角色的剩余空间所导致的问题 124
以什么顺序传递Data角色呢 125
“存在中间角色”的意义 125
Consumer角色只有—个时会怎么样呢 126
5.5 相关的设计模式 126
Mediator模式 126
Worker Thread模式 126
Command模式 126
Strategy模式 127
5.6 延伸阅读1:理解InterruptedException异常 127
可能会花费时间,但可以取消 127
加了throws InterruptedException的方法 127
sleep方法和interrupt方法 128
wait方法和interrupt方法 128
join方法和interrupt方法 129
interrupt方法只是改变中断状态 129
isInterrupted方法——检查中断状态 130
Thread.interrupted方法——检查并清除中断状态 130
不可以使用Thread类的stop方法 130 <
【轻松学习多线程编程】图解Java多线程设计模式 结城浩 Java线程书籍多线程编程技巧 电子书 下载 mobi epub pdf txt