注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)JAVA多線程設(shè)計(jì)模式

JAVA多線程設(shè)計(jì)模式

JAVA多線程設(shè)計(jì)模式

定 價(jià):¥49.00

作 者: (日)結(jié)城浩著;博碩文化譯;博碩文化譯
出版社: 中國鐵道出版社
叢編項(xiàng):
標(biāo) 簽: Java

ISBN: 9787113064020 出版時(shí)間: 2005-04-01 包裝: 膠版紙
開本: 23cm 頁數(shù): 493 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  多線程與并發(fā)處理是程序設(shè)計(jì)好壞優(yōu)劣的重要課題,本書通過淺顯易懂的文字與實(shí)例來介紹與Java線程相關(guān)的設(shè)計(jì)模式理念,并且通過實(shí)際的Java程序范例和UML圖示來一一解說,書中在程序代碼的重要部分加上標(biāo)注使讀者更加容易解讀。再配合眾多的說明圖解,無論對(duì)于初學(xué)者還是程序設(shè)計(jì)高手來說,這都是學(xué)習(xí)和認(rèn)識(shí)設(shè)計(jì)模式的一本非常難得的參考書。書中包含了Java語言線程的基礎(chǔ)內(nèi)容介紹、12個(gè)重要的多線程設(shè)計(jì)模式和全書總結(jié)以及豐富的附錄內(nèi)容。每一章相關(guān)線程設(shè)計(jì)模式的介紹,都舉一反三使學(xué)習(xí)更有效率。每章后附有習(xí)題,讓讀者可以溫故知新,更加迅速地吸收書中精華,書中最后附上問題解答,方便讀者學(xué)習(xí)驗(yàn)證。本書所有模式的解說中都配有相關(guān)的范例說明,相信通過本書的學(xué)習(xí),讀者一定會(huì)迅速學(xué)到自己想要掌握的知識(shí)。

作者簡(jiǎn)介

暫缺《JAVA多線程設(shè)計(jì)模式》作者簡(jiǎn)介

圖書目錄

漫談UML
UML
類圖
類和層次結(jié)構(gòu)的關(guān)系
接口與實(shí)現(xiàn)
聚合
訪問控制
類間的關(guān)聯(lián)性
順序圖
處理流程和對(duì)象間的協(xié)調(diào)
時(shí)序圖
Introduction 1 Java語言的線程
Java語言的線程
何謂線程
明為追蹤處理流程,實(shí)則追蹤線程
單線程程序
多線程程序
Thread類的run方法和start方法
線程的啟動(dòng)
線程的啟動(dòng)(1)——利用Thread類的子類
線程的啟動(dòng)(2)——利用Runnable接口
線程的暫時(shí)停止
線程的共享互斥
synchronized方法
synchronized阻擋
線程的協(xié)調(diào)
wait set——線程的休息室
wait方法——把線程放入wait set
notif3,方法——從wait set拿出線程
notifyAll方法——從wait set拿出所有線程
wait、notify、notifyAll是Object類的方法
線程的狀態(tài)移轉(zhuǎn)
跟線程有關(guān)的其他話題
重點(diǎn)回顧
練習(xí)問題
Introduction 2 多線程程序的評(píng)量標(biāo)準(zhǔn)
多線程程序的評(píng)量標(biāo)準(zhǔn)
安全性——不損壞對(duì)象
生存性——進(jìn)行必要的處理
復(fù)用性——可再利用類
性能——能快速、大量進(jìn)行處理
評(píng)量標(biāo)準(zhǔn)的總結(jié)
重點(diǎn)回顧
練習(xí)問題
第1章 Single Threaded Execution——能通過這座橋的,只有一個(gè)人
Single Threaded Execution Pattern
范例程序1:不使用Single Threaded Execution Pattern的范例
Main類
并非線程安全(thread-safe)的Gate類
UserThread類
執(zhí)行看看·果然出錯(cuò)了
為什么會(huì)出錯(cuò)呢
范例程序2:使用Single Threaded Execution Pattern的范例
線程安全的Gate類
synchronized所扮演的角色
Single Threaded Execution Pattern的所有參與者
擴(kuò)展思考方向的提示
何時(shí)使用(適用性)
生命性與死鎖
可重用性與繼承異常
臨界區(qū)的大小與執(zhí)行性能
相關(guān)Pattern
Guarded Suspension Pattern(第3章)
Read-Write Lock Pattern(第6章)
Immutable Pattern(第2章)
Thread-Specific Storage Pattern(第11章)
進(jìn)階說明:關(guān)于synchronized
synchronized語法與Before/After Pattern
這個(gè)synchronized在保護(hù)什么
該以什么單位來保護(hù)呢
獲取誰的鎖定來保護(hù)的呢
原子的操作
long與double并不是原子的
重點(diǎn)回顧
練習(xí)問題
第2章 Immutable——想破壞它也沒辦法
Immutable Pattern
范例程序
使用Immutable Pattern的Person類
Main類
PrintPersonThread類
Immutable Pattern的所有參與者
擴(kuò)展思考方向的提示
何時(shí)使用(適用性)
思考成對(duì)的mutable類與immutable類[執(zhí)行性能]
為了保護(hù)類的不變性[復(fù)用性]
標(biāo)準(zhǔn)類鏈接庫里使用到的Immutable Pattern
相關(guān)Pattern
Single Threaded Execution Pattern(第l章)
Read-Write Lock Pattern(第6章)
Flyweight Pattern(參考附錄E[GoF][Yuki01])
進(jìn)階說明:final
重點(diǎn)回顧
練習(xí)問題
第3章 Guarded Suspension——要等到我準(zhǔn)備好喔
Guarded Suspension Pattern
范例程序
Request類
RequestQueue類
ClientThread類
ServerThread類
Main類
java.util.LinkedList類的操作
仔細(xì)分析getRequest方法
仔細(xì)分析putRequest方法
synchronized的意義
wait與鎖定
Guarded Suspension Pattern的所有參與者
擴(kuò)展思考方向的提示
有條件的synchronized
多線程版的if
忘記更改狀態(tài)與生命性
wait與notif3,/notif3,All的責(zé)任[復(fù)用性]
各種各樣的稱呼
相關(guān)Pattern
Single Threaded Execution Paaem(第1章)
Balking Pattern(第4章)
Producer-Consumer Pattern(第5章)
Future Pattern(第9章)
重點(diǎn)回顧
練習(xí)問題
第4章 Balking——不需要的話,就算了吧
Balking Pattern
范例程序
Data類
SaverThread類
ChangerThread類
Main類
Balking Pattern的所有參與者
擴(kuò)展思考方向的提示
何時(shí)使用(適用性)
表達(dá)balk結(jié)果的方式
相關(guān)Paaem
Guarded Suspension Pattern(第3章)
Observer Pattern(參考附錄E[GoF][Yuki01])
進(jìn)階說明:timeout
B alking PaRem與Guarded Suspension Pattern的中間
wait的結(jié)束是什么時(shí)候
guarded timed的實(shí)現(xiàn)
synchronized沒有timeout,也不能中斷
重點(diǎn)回顧
練習(xí)問題
第5章 Producer-Consumer——我來做,你來用
Producer-Consumer Pattern
范例程序
Main類
MakerThread類
EaterThread類
Table類
分析put方法
分析take方法
Producer-Consumer Pattern的所有參與者
擴(kuò)展思考方向的提示
保護(hù)安全性的Channel參與者[復(fù)用性]
不能直接傳遞嗎
Channel參與者負(fù)荷派生的問題
要以什么順序傳遞Data參與者
[中間者的存在]隱含的意義
只有一個(gè)Consumer參與者時(shí)會(huì)如何
相關(guān)PaRem
Mediator PaRern(參考附錄E[GoF][Yukiol])
Worker Thread Pattern(第8章)
Command Pattern(參考附錄E[GoF][Yuki01])
Strategy Pattern(參考附錄E[GoF][Yuki01])
進(jìn)階說明:InterruptedException異常
可能會(huì)花一些時(shí)間,但是可以取消掉
后面接著throws InterruptedException的方法
sleep方法與interrupt方法
wait方法與interrupt方法
ioin方法與interrupt方法
interrupt方法只是改變中斷狀態(tài)而已
isInterrupted方法——檢查中斷狀態(tài)
Thread.interrupted方法——檢查并清除中斷狀態(tài)
Thread類的stop方法不能使用
重點(diǎn)回顧
練習(xí)問題
第6章 Read-Write Lock——大家想看就看吧,不過看的時(shí)候不能寫喔.
Read-Write Lock Pattern
范例程序
Main類
Data類
WriterThread類
ReaderThread類
ReadWriteLock類
執(zhí)行結(jié)果
檢驗(yàn)警戒條件
Read-Write Lock Pattern的所有參與者
擴(kuò)展思考方向的提示
利用同時(shí)“讀取"不會(huì)沖突的特性,提高程序的性能
適合讀取操作繁重時(shí)
適合讀取比寫入次數(shù)頻繁時(shí)
鎖定的意義
相關(guān)Pattern
Immutable Pattern(第2章)。
Single Threaded Execution Pattern(第1章)
Guarded Suspension Pattern(第3章)
Before/After Pattern(參考附錄E[Lea])
Strategized Locking Pattern(參考附錄E[POSA2])
重點(diǎn)回顧
練習(xí)問題
第7章 Thread·Per-Message——這個(gè)工作交給你了
Thread-Per-Message Pattern
范例程序
Main類
Host類
Helper類
Thread-Per-Message Pattern的所有參與者一
擴(kuò)展思考方向的提示
提升響應(yīng)性,降低延遲時(shí)間
適合在操作順序無所謂時(shí)使用
不需要返回值的時(shí)候
應(yīng)用在服務(wù)器的制作
調(diào)用方法+啟動(dòng)線程一傳送消息
相關(guān)Pattern
Future Pattern(第9章)
Worker Thread Pattern(第8章)
進(jìn)階說明:進(jìn)程與線程
重點(diǎn)回顧
練習(xí)問題
第8章 Worker Thread——等到工作來,來了就工作
Worker Thread PaRern
范例程序
Main類
ClientThread類
Request類
Channel類
WorkerThread類
Worker Thread Paaern的所有參與者
擴(kuò)展思考方向的提示
啟動(dòng)線程是繁重的操作
控制承載量
invocation與execution的分離
Runnable接口的意義
多態(tài)的Request參與者
只有一條Worker參與者
相關(guān)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章)
進(jìn)階說明:Swing的Event-Dispatching Thread
何謂Event-Dispatching Thread
Event-dispatching thread只有一條
Event-dispatching thread會(huì)調(diào)用Listener
注冊(cè)Listener的意義
Event-dispatching thread也處理畫面的重繪
javax.swing.SwingUtilities類
Swing的單線程規(guī)則
重點(diǎn)回顧
練習(xí)問題
第9章 Future——先給您這張?zhí)嶝泦?br />Future Pattern
范例程序
Main類
Host類
Data接口
FutureData類
RealData類
Future Pattern的所有參與者
擴(kuò)展思考方向的提示
能夠提升throughput嗎
異步方法調(diào)用的“返回值”
分離“準(zhǔn)備返回值”與“使用返回值”
變形——不讓人等待的Future參與者
變形——會(huì)改變的Future參與者
誰需要考慮到多線程[復(fù)用性]
回調(diào)與Future Pattern
相關(guān)Pattern
Thread-Per-Message PaRem(第7章)
Builder Pattern(參考附錄E[GoF][Yuki01])
Proxy Pattern(參考附錄E[GoF][Yuki01])
Guarded Suspension Pattem(第3章)
重點(diǎn)回顧
Thread-Specific Storage Pattern(第11章)
Active Obiect Pattern(第12章)
進(jìn)階說明:Swing的Event-Dispatching Thread
何謂Event-Dispatching Thread
Event-dispatching thread只有一條
Event-dispatching thread會(huì)調(diào)用Listener
注冊(cè)Listener的意義
Event-dispatching thread也處理畫面的重繪
javax.swing.SwingUtilities類
Swing的單線程規(guī)則
重點(diǎn)回顧
練習(xí)問題
練習(xí)問題
第10章 Two-Phase Termination——快把玩具收拾好,去睡覺吧
Two-Phase Termination Pattern
范例程序
CountupThread類
Main類
Two-Phase Termination Patt.em的所有參與者
擴(kuò)展思考方向的提示
不可以使用Thread類的stop方法
只檢查標(biāo)識(shí)是不夠周全的
只測(cè)試中斷狀態(tài)也是不夠的
進(jìn)行繁重的處理前,先檢查終止請(qǐng)求
join方法與isAlive方法
程序的結(jié)束與addShutdownHook方法
優(yōu)雅終止的線程
相關(guān)Pattern
Before/After Pattern(參考附錄E[Lea])
Multiphase Cancellation Pattern(參考附錄E[Lea])
Multi-Phase Startup Pattern
Balking Pattern(第4章)
進(jìn)階說明: 中斷狀態(tài)與InterruptedException異常的相互轉(zhuǎn)換
中斷狀態(tài)一InterruptedException異常的轉(zhuǎn)換
InterruptedException異常一轉(zhuǎn)換為中斷狀態(tài)
InterruptedException異常一轉(zhuǎn)換為InterruptedException異常
重點(diǎn)回顧
練習(xí)問題
第11章 Thread·Specific Storage——每個(gè)線程的保管箱
Thread-Specific Storage Pattern.
關(guān)于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的所有參與者
擴(kuò)展思考方向的提示
局部變量與java.1ang.ThreadLocal類
放置線程特有信息的地方
不必?fù)?dān)心被其他線程訪問
throughput的提升取決于實(shí)現(xiàn)
隱藏context的危險(xiǎn)性
相關(guān)Pattern
Singleton Pattern(參考附錄E[GoF][Yuki01])
Worker Thread Pattern(第8章)
Single Threaded Execution Pattern(第1章)
Proxy Pattern(參考附錄E[GoF][Yuki01])
進(jìn)階說明:Actor-based與Task-based
主體與客體
Actor-based的思維
Task-based的思維
實(shí)際上兩個(gè)開發(fā)方式是混用的
重點(diǎn)回顧
練習(xí)問題
第12章 Active Object——接受異步消息的主動(dòng)對(duì)象
Active Object Pattern
范例程序
使用端:Main類
使用端:MakerClientThread類
使用端:DisplayClientThread類
“主動(dòng)對(duì)象”端:ActiveObject接口
“主動(dòng)對(duì)象”端:ActiveObjectFactory類
“主動(dòng)對(duì)象”端:Proxy類
“主動(dòng)對(duì)象”端:SchedulerThread類
“主動(dòng)對(duì)象”端:ActivationQueue類
“主動(dòng)對(duì)象”端:MethodRequest類
“主動(dòng)對(duì)象”端:MakeStringRequest類
“主動(dòng)對(duì)象”端:DisplayStringRequest類
“主動(dòng)對(duì)象”端:Result類
“主動(dòng)對(duì)象”端:FutureResult類
“主動(dòng)對(duì)象”端:RealResult類
“主動(dòng)對(duì)象”端:Servant類
執(zhí)行范例程序
Active Obiect Pattern的所有參與者
擴(kuò)展思考方向的提示
到底做了什么事呢
PaRem是否適合使用要考慮問題的規(guī)模
注意并發(fā)性
新增方法
Scheduler參與者的角色
“主動(dòng)對(duì)象”之間的對(duì)話
邁向分布處理——將線程的界限移到機(jī)器的界限
相關(guān)Pattern
Producer-Consumer Pattern(第5章)
Future Pattern(第9章)
Worker Thread Pattern(第8章)
Thread-Specific Storage Pattern(第11章)
重點(diǎn)回顧
練習(xí)問題
總結(jié) 多線程程序設(shè)計(jì)的模式語言
多線程程序設(shè)計(jì)的模式語言
Pattern與Pattern Language
Single Threaded Execution Pattern(第1章)——能通過這座橋的,只有一個(gè)人
Immutable Pattern(第2章)——想破壞它也沒辦法
Guarded Suspension Pattern(第3章)——等到我準(zhǔn)備好
Balking Pattern(第4章)——不需要的話,就算了吧
Producer-Consumer Pattern(第5章)——你來做,我來用
Read-Write Lock Pattem(第6章)——大家想看就看吧,不過看的時(shí)候不能寫喔
Thread-Per-Message Pattern(第7章)——這個(gè)工作交給你了
Worker Thread Pattern(第8章)——等到工作來,來了就工作
Future Pattern(第9章)——先給您這張?zhí)嶝泦?br />Two-Phase Termination Pattern(第10章)——快把玩具收拾好,去睡覺吧
Thread-Specific Storage Pattem(第11章)——每個(gè)線程的保管箱
Active Object Pattern(第12章)——接受異步消息的主動(dòng)對(duì)象
尾聲
附錄A 練習(xí)問題的解答
附錄B Java的內(nèi)存模型
附錄C Java線程的優(yōu)先級(jí)
附錄D 線程相關(guān)的主要API
附錄E 參考文獻(xiàn)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)