注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计JAVA及其相关JAVA多线程设计模式

JAVA多线程设计模式

JAVA多线程设计模式

定 价:¥49.00

作 者: (日)结城浩著;博硕文化译;博硕文化译
出版社: 中国铁道出版社
丛编项:
标 签: Java

ISBN: 9787113064020 出版时间: 2005-04-01 包装: 胶版纸
开本: 23cm 页数: 493 字数:  

内容简介

  多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍与Java线程相关的设计模式理念,并且通过实际的Java程序范例和UML图示来一一解说,书中在程序代码的重要部分加上标注使读者更加容易解读。再配合众多的说明图解,无论对于初学者还是程序设计高手来说,这都是学习和认识设计模式的一本非常难得的参考书。书中包含了Java语言线程的基础内容介绍、12个重要的多线程设计模式和全书总结以及丰富的附录内容。每一章相关线程设计模式的介绍,都举一反三使学习更有效率。每章后附有习题,让读者可以温故知新,更加迅速地吸收书中精华,书中最后附上问题解答,方便读者学习验证。本书所有模式的解说中都配有相关的范例说明,相信通过本书的学习,读者一定会迅速学到自己想要掌握的知识。

作者简介

暂缺《JAVA多线程设计模式》作者简介

图书目录

漫谈UML
UML
类图
类和层次结构的关系
接口与实现
聚合
访问控制
类间的关联性
顺序图
处理流程和对象间的协调
时序图
Introduction 1 Java语言的线程
Java语言的线程
何谓线程
明为追踪处理流程,实则追踪线程
单线程程序
多线程程序
Thread类的run方法和start方法
线程的启动
线程的启动(1)——利用Thread类的子类
线程的启动(2)——利用Runnable接口
线程的暂时停止
线程的共享互斥
synchronized方法
synchronized阻挡
线程的协调
wait set——线程的休息室
wait方法——把线程放入wait set
notif3,方法——从wait set拿出线程
notifyAll方法——从wait set拿出所有线程
wait、notify、notifyAll是Object类的方法
线程的状态移转
跟线程有关的其他话题
重点回顾
练习问题
Introduction 2 多线程程序的评量标准
多线程程序的评量标准
安全性——不损坏对象
生存性——进行必要的处理
复用性——可再利用类
性能——能快速、大量进行处理
评量标准的总结
重点回顾
练习问题
第1章 Single Threaded Execution——能通过这座桥的,只有一个人
Single Threaded Execution Pattern
范例程序1:不使用Single Threaded Execution Pattern的范例
Main类
并非线程安全(thread-safe)的Gate类
UserThread类
执行看看·果然出错了
为什么会出错呢
范例程序2:使用Single Threaded Execution Pattern的范例
线程安全的Gate类
synchronized所扮演的角色
Single Threaded Execution Pattern的所有参与者
扩展思考方向的提示
何时使用(适用性)
生命性与死锁
可重用性与继承异常
临界区的大小与执行性能
相关Pattern
Guarded Suspension Pattern(第3章)
Read-Write Lock Pattern(第6章)
Immutable Pattern(第2章)
Thread-Specific Storage Pattern(第11章)
进阶说明:关于synchronized
synchronized语法与Before/After Pattern
这个synchronized在保护什么
该以什么单位来保护呢
获取谁的锁定来保护的呢
原子的操作
long与double并不是原子的
重点回顾
练习问题
第2章 Immutable——想破坏它也没办法
Immutable Pattern
范例程序
使用Immutable Pattern的Person类
Main类
PrintPersonThread类
Immutable Pattern的所有参与者
扩展思考方向的提示
何时使用(适用性)
思考成对的mutable类与immutable类[执行性能]
为了保护类的不变性[复用性]
标准类链接库里使用到的Immutable Pattern
相关Pattern
Single Threaded Execution Pattern(第l章)
Read-Write Lock Pattern(第6章)
Flyweight Pattern(参考附录E[GoF][Yuki01])
进阶说明:final
重点回顾
练习问题
第3章 Guarded Suspension——要等到我准备好喔
Guarded Suspension Pattern
范例程序
Request类
RequestQueue类
ClientThread类
ServerThread类
Main类
java.util.LinkedList类的操作
仔细分析getRequest方法
仔细分析putRequest方法
synchronized的意义
wait与锁定
Guarded Suspension Pattern的所有参与者
扩展思考方向的提示
有条件的synchronized
多线程版的if
忘记更改状态与生命性
wait与notif3,/notif3,All的责任[复用性]
各种各样的称呼
相关Pattern
Single Threaded Execution Paaem(第1章)
Balking Pattern(第4章)
Producer-Consumer Pattern(第5章)
Future Pattern(第9章)
重点回顾
练习问题
第4章 Balking——不需要的话,就算了吧
Balking Pattern
范例程序
Data类
SaverThread类
ChangerThread类
Main类
Balking Pattern的所有参与者
扩展思考方向的提示
何时使用(适用性)
表达balk结果的方式
相关Paaem
Guarded Suspension Pattern(第3章)
Observer Pattern(参考附录E[GoF][Yuki01])
进阶说明:timeout
B alking PaRem与Guarded Suspension Pattern的中间
wait的结束是什么时候
guarded timed的实现
synchronized没有timeout,也不能中断
重点回顾
练习问题
第5章 Producer-Consumer——我来做,你来用
Producer-Consumer Pattern
范例程序
Main类
MakerThread类
EaterThread类
Table类
分析put方法
分析take方法
Producer-Consumer Pattern的所有参与者
扩展思考方向的提示
保护安全性的Channel参与者[复用性]
不能直接传递吗
Channel参与者负荷派生的问题
要以什么顺序传递Data参与者
[中间者的存在]隐含的意义
只有一个Consumer参与者时会如何
相关PaRem
Mediator PaRern(参考附录E[GoF][Yukiol])
Worker Thread Pattern(第8章)
Command Pattern(参考附录E[GoF][Yuki01])
Strategy Pattern(参考附录E[GoF][Yuki01])
进阶说明:InterruptedException异常
可能会花一些时间,但是可以取消掉
后面接着throws InterruptedException的方法
sleep方法与interrupt方法
wait方法与interrupt方法
ioin方法与interrupt方法
interrupt方法只是改变中断状态而已
isInterrupted方法——检查中断状态
Thread.interrupted方法——检查并清除中断状态
Thread类的stop方法不能使用
重点回顾
练习问题
第6章 Read-Write Lock——大家想看就看吧,不过看的时候不能写喔.
Read-Write Lock Pattern
范例程序
Main类
Data类
WriterThread类
ReaderThread类
ReadWriteLock类
执行结果
检验警戒条件
Read-Write Lock Pattern的所有参与者
扩展思考方向的提示
利用同时“读取"不会冲突的特性,提高程序的性能
适合读取操作繁重时
适合读取比写入次数频繁时
锁定的意义
相关Pattern
Immutable Pattern(第2章)。
Single Threaded Execution Pattern(第1章)
Guarded Suspension Pattern(第3章)
Before/After Pattern(参考附录E[Lea])
Strategized Locking Pattern(参考附录E[POSA2])
重点回顾
练习问题
第7章 Thread·Per-Message——这个工作交给你了
Thread-Per-Message Pattern
范例程序
Main类
Host类
Helper类
Thread-Per-Message Pattern的所有参与者一
扩展思考方向的提示
提升响应性,降低延迟时间
适合在操作顺序无所谓时使用
不需要返回值的时候
应用在服务器的制作
调用方法+启动线程一传送消息
相关Pattern
Future Pattern(第9章)
Worker Thread Pattern(第8章)
进阶说明:进程与线程
重点回顾
练习问题
第8章 Worker Thread——等到工作来,来了就工作
Worker Thread PaRern
范例程序
Main类
ClientThread类
Request类
Channel类
WorkerThread类
Worker Thread Paaern的所有参与者
扩展思考方向的提示
启动线程是繁重的操作
控制承载量
invocation与execution的分离
Runnable接口的意义
多态的Request参与者
只有一条Worker参与者
相关Pattern
Producer-Consumer Pattern(第5章)
Thread-Per-Message Pattern(第7章)
Command Pattern(参考附录E[GoF][Yuki01])
Future Pattern(第9章)
Flyweight Pattern(参考附录E[GoF][Yukiol])
Thread-Specific Storage Pattern(第11章)
Active Obiect Pattern(第12章)
进阶说明:Swing的Event-Dispatching Thread
何谓Event-Dispatching Thread
Event-dispatching thread只有一条
Event-dispatching thread会调用Listener
注册Listener的意义
Event-dispatching thread也处理画面的重绘
javax.swing.SwingUtilities类
Swing的单线程规则
重点回顾
练习问题
第9章 Future——先给您这张提货单
Future Pattern
范例程序
Main类
Host类
Data接口
FutureData类
RealData类
Future Pattern的所有参与者
扩展思考方向的提示
能够提升throughput吗
异步方法调用的“返回值”
分离“准备返回值”与“使用返回值”
变形——不让人等待的Future参与者
变形——会改变的Future参与者
谁需要考虑到多线程[复用性]
回调与Future Pattern
相关Pattern
Thread-Per-Message PaRem(第7章)
Builder Pattern(参考附录E[GoF][Yuki01])
Proxy Pattern(参考附录E[GoF][Yuki01])
Guarded Suspension Pattem(第3章)
重点回顾
Thread-Specific Storage Pattern(第11章)
Active Obiect Pattern(第12章)
进阶说明:Swing的Event-Dispatching Thread
何谓Event-Dispatching Thread
Event-dispatching thread只有一条
Event-dispatching thread会调用Listener
注册Listener的意义
Event-dispatching thread也处理画面的重绘
javax.swing.SwingUtilities类
Swing的单线程规则
重点回顾
练习问题
练习问题
第10章 Two-Phase Termination——快把玩具收拾好,去睡觉吧
Two-Phase Termination Pattern
范例程序
CountupThread类
Main类
Two-Phase Termination Patt.em的所有参与者
扩展思考方向的提示
不可以使用Thread类的stop方法
只检查标识是不够周全的
只测试中断状态也是不够的
进行繁重的处理前,先检查终止请求
join方法与isAlive方法
程序的结束与addShutdownHook方法
优雅终止的线程
相关Pattern
Before/After Pattern(参考附录E[Lea])
Multiphase Cancellation Pattern(参考附录E[Lea])
Multi-Phase Startup Pattern
Balking Pattern(第4章)
进阶说明: 中断状态与InterruptedException异常的相互转换
中断状态一InterruptedException异常的转换
InterruptedException异常一转换为中断状态
InterruptedException异常一转换为InterruptedException异常
重点回顾
练习问题
第11章 Thread·Specific Storage——每个线程的保管箱
Thread-Specific Storage Pattern.
关于java.1ang.ThreadLocal类
java.1ang.ThreadLocal是保管箱间
范例程序1:没有使用Thread-Specific Storage Pattern的范例
Log类
Main类
范例程序2:使用Thread-Specific Storage PaRem的范例
线程特有的TSLog类
Log类
ClientThread类
Main类
Thread-Specific Storage Pattern的所有参与者
扩展思考方向的提示
局部变量与java.1ang.ThreadLocal类
放置线程特有信息的地方
不必担心被其他线程访问
throughput的提升取决于实现
隐藏context的危险性
相关Pattern
Singleton Pattern(参考附录E[GoF][Yuki01])
Worker Thread Pattern(第8章)
Single Threaded Execution Pattern(第1章)
Proxy Pattern(参考附录E[GoF][Yuki01])
进阶说明:Actor-based与Task-based
主体与客体
Actor-based的思维
Task-based的思维
实际上两个开发方式是混用的
重点回顾
练习问题
第12章 Active Object——接受异步消息的主动对象
Active Object Pattern
范例程序
使用端:Main类
使用端:MakerClientThread类
使用端:DisplayClientThread类
“主动对象”端:ActiveObject接口
“主动对象”端:ActiveObjectFactory类
“主动对象”端:Proxy类
“主动对象”端:SchedulerThread类
“主动对象”端:ActivationQueue类
“主动对象”端:MethodRequest类
“主动对象”端:MakeStringRequest类
“主动对象”端:DisplayStringRequest类
“主动对象”端:Result类
“主动对象”端:FutureResult类
“主动对象”端:RealResult类
“主动对象”端:Servant类
执行范例程序
Active Obiect Pattern的所有参与者
扩展思考方向的提示
到底做了什么事呢
PaRem是否适合使用要考虑问题的规模
注意并发性
新增方法
Scheduler参与者的角色
“主动对象”之间的对话
迈向分布处理——将线程的界限移到机器的界限
相关Pattern
Producer-Consumer Pattern(第5章)
Future Pattern(第9章)
Worker Thread Pattern(第8章)
Thread-Specific Storage Pattern(第11章)
重点回顾
练习问题
总结 多线程程序设计的模式语言
多线程程序设计的模式语言
Pattern与Pattern Language
Single Threaded Execution Pattern(第1章)——能通过这座桥的,只有一个人
Immutable Pattern(第2章)——想破坏它也没办法
Guarded Suspension Pattern(第3章)——等到我准备好
Balking Pattern(第4章)——不需要的话,就算了吧
Producer-Consumer Pattern(第5章)——你来做,我来用
Read-Write Lock Pattem(第6章)——大家想看就看吧,不过看的时候不能写喔
Thread-Per-Message Pattern(第7章)——这个工作交给你了
Worker Thread Pattern(第8章)——等到工作来,来了就工作
Future Pattern(第9章)——先给您这张提货单
Two-Phase Termination Pattern(第10章)——快把玩具收拾好,去睡觉吧
Thread-Specific Storage Pattem(第11章)——每个线程的保管箱
Active Object Pattern(第12章)——接受异步消息的主动对象
尾声
附录A 练习问题的解答
附录B Java的内存模型
附录C Java线程的优先级
附录D 线程相关的主要API
附录E 参考文献

本目录推荐