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

Java線程編程

Java線程編程

定 價(jià):¥52.00

作 者: (美)Paul Hyde著;周良忠譯
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: JAVA語(yǔ)言 程序設(shè)計(jì)

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787115117915 出版時(shí)間: 2003-01-01 包裝: 膠版紙
開(kāi)本: 26cm 頁(yè)數(shù): 472 字?jǐn)?shù):  

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

  本書(shū)以豐富的實(shí)例、由淺至深的方式全面講解如何用Java進(jìn)行多線程編程。全書(shū)分三部分。第一部分(第1章~第10章)介紹基礎(chǔ)概念,包括線程、線程組、Swing、線程同步、線程優(yōu)先級(jí)、啟動(dòng)和終止線程、線程間通信等。第二部分(第11章~第18章)介紹一些重要的多線程編程技術(shù),包括自運(yùn)行對(duì)象、異?;卣{(diào)、線程池、完全超時(shí)、擺脫阻塞的I/O狀態(tài)、先進(jìn)先出(FIFO)隊(duì)列以及運(yùn)用類(lèi)SureStop和BooleanLock等。第三部分為附錄,提供了Thread API和ThreadGroup API的相關(guān)材料。 本書(shū)可以幫助具有Java基本編程知識(shí)的程序員學(xué)習(xí)多線程編程。

作者簡(jiǎn)介

  譯者:周良忠暢銷(xiāo)圖書(shū)《C++實(shí)踐之路》的譯者周良忠,1970年生。本科畢業(yè)于武漢化工學(xué)院計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)。1995畢業(yè)于中國(guó)科學(xué)院武漢巖土力學(xué)研究所,獲碩士學(xué)位,1997年獲得博士學(xué)位。1998年創(chuàng)辦云巔工作室(http://www.cloudcrown.com),為個(gè)人、中小企業(yè)提供專(zhuān)業(yè)軟件定做服務(wù)。近幾年開(kāi)發(fā)了多款廣受歡迎的共享軟件。精通C++、C#、Java、Perl等開(kāi)發(fā)語(yǔ)言。2001年開(kāi)始從事計(jì)算機(jī)科技圖書(shū)的創(chuàng)作和翻譯工作,最新翻譯力作有《C#PrimerPlus中文版》、《C++實(shí)踐之路》等。SymbianOS軟件開(kāi)發(fā)開(kāi)發(fā):應(yīng)用C++開(kāi)發(fā)智能手機(jī)應(yīng)用程序入門(mén)>>更多作品

圖書(shū)目錄

第一部分  線    程                  
 第1章  線程簡(jiǎn)介 3                  
 1.1  什么是線程 4                  
 1.2  為什么使用多線程 4                  
 1.2.1  與用戶(hù)的更佳交互 4                  
 1.2.2  同步動(dòng)作的模擬 5                  
 1.2.3  利用多處理器 5                  
 1.2.4  等待緩慢I/O操作時(shí)完成其他任務(wù) 5                  
 1.2.5  簡(jiǎn)化對(duì)象模型 6                  
 1.3  不宜采用多線程的場(chǎng)合 7                  
 1.4  Java的內(nèi)置線程支持 7                  
 1.5  易于起步, 難以掌握 7                  
 第2章  一個(gè)簡(jiǎn)單的雙線程實(shí)例 9                  
 2.1  擴(kuò)展java.lang.Thread類(lèi) 10                  
 2.2  覆蓋run()方法 11                  
 2.3  創(chuàng)建新線程 12                  
 2.4  綜合運(yùn)用 13                  
 2.5  小結(jié) 14                  
 第3章  創(chuàng)建和啟動(dòng)線程 15                  
 3.1  使用Thread.currentThread() 16                  
 3.2  線程命名:getName()和setName() 18                  
 3.2.1  使用getName() 18                  
 3.2.2  使用setName() 21                  
 3.3  線程構(gòu)造函數(shù) 22                  
 3.4  激活線程:start()和isAlive() 24                  
 3.5  使用Thread.sleep() 26                  
 3.6  小結(jié) 28                  
 第4章  實(shí)現(xiàn)Runnable接口與擴(kuò)展Thread類(lèi) 30                  
 4.1  可視定時(shí)器圖形組件 31                  
 4.2  能擴(kuò)展Thread和JComponent嗎 37                  
 4.3  接口java.lang.Runnable 38                  
 4.4  把Runnable對(duì)象傳遞給Thread的構(gòu)造函數(shù) 38                  
 4.5  修改SecondCounter來(lái)使用Runnable 39                  
 4.6  檢查SecondCounter的準(zhǔn)確性 45                  
 4.7  提高SecondCounter的準(zhǔn)確性 49                  
 4.8  小結(jié) 54                  
 第5章  完美終止線程 55                  
 5.1  中斷線程:interrupt() 56                  
 5.1.1  中斷休眠線程 58                  
 5.1.2  待決中斷 56                  
 5.1.3  使用isInterrupted() 59                  
 5.1.4  使用Thread.interrupted() 60                  
 5.1.5  使用InterruptedException 61                  
 5.2  掛起和恢復(fù)線程執(zhí)行 63                  
 5.2.1  使用淘汰的方法suspend()和resume() 63                  
 5.2.2  在不恰當(dāng)?shù)臅r(shí)候掛起 67                  
 5.2.3  不使用淘汰方法實(shí)現(xiàn)掛起和恢復(fù) 70                  
 5.3  終止線程 74                  
 5.3.1  使用淘汰的方法stop() 74                  
 5.3.2  取代stop() 76                  
 5.4  stop(). suspend()和resume()的最佳替代 78                  
 5.5  守護(hù)線程 84                  
 5.6  小結(jié) 86                  
 第6章  線程優(yōu)先化 87                  
 6.1  系統(tǒng)線程優(yōu)先級(jí) 88                  
 6.2  線程優(yōu)先級(jí)常量 89                  
 6.2.1  Thread.MAX_PRIORITY 89                  
 6.2.2  Thread.MIN_PRIORITY 89                  
 6.2.3  Thread.NORM_PRIORITY 89                  
 6.3  判斷當(dāng)前優(yōu)先級(jí):getPriority() 89                  
 6.4  更改線程的優(yōu)先級(jí):setPriority() 91                  
 6.5  線程狀態(tài) 94                  
 6.6  優(yōu)先級(jí)和規(guī)劃 96                  
 6.7  自愿放棄處理器:Thread.yield() 96                  
 6.8  線程規(guī)劃情形 102                  
 6.8.1  情形一:一個(gè)高優(yōu)先級(jí)線程獨(dú)占處理器 102                  
 6.8.2  情形二:所有高優(yōu)先級(jí)線程獨(dú)占處理器 102                  
 6.8.3  情形三:所有線程均獲得一定的處理器時(shí)間 102                  
 6.9  小結(jié) 103                  
 第7章  并發(fā)訪問(wèn)對(duì)象和變量 104                  
 7.1  易變成員變量修飾符 105                  
 7.2  同步方法修飾符 110                  
 7.2.1  兩個(gè)線程同時(shí)位于一個(gè)對(duì)象的同一個(gè)方法中 110                  
 7.2.2  同一時(shí)刻一個(gè)線程 112                  
 7.2.3  兩個(gè)線程, 兩個(gè)對(duì)象 115                  
 7.2.4  避免對(duì)象的意外崩潰 117                  
 7.2.5  對(duì)象處于不一致?tīng)顟B(tài)時(shí), 推遲對(duì)它的訪問(wèn) 121                  
 7.3  同步語(yǔ)句塊 126                  
 7.3.1  減少持有鎖的時(shí)間 126                  
 7.3.2  鎖定任意對(duì)象, 而非僅僅鎖定當(dāng)前對(duì)象 127                  
 7.3.3  把向量?jī)?nèi)容安全地復(fù)制到數(shù)組 128                  
 7.4  靜態(tài)同步方法 130                  
 7.5  在同步語(yǔ)句中使用類(lèi)級(jí)別鎖 134                  
 7.6  同步化和集合API 136                  
 7.6.1  封裝集合, 使之同步化 136                  
 7.6.2  安全地把列表中的內(nèi)容復(fù)制到數(shù)組 137                  
 7.6.3  安全遍歷集合元素 139                  
 7.7  死鎖 141                  
 7.8  加速并發(fā)訪問(wèn) 145                  
 7.9  小結(jié) 145                  
 第8章  線程間通信 147                  
 8.1  線程間通信的必要性 148                  
 8.2  等待/通知機(jī)制 148                  
 8.2.1  最小規(guī)模的等待/通知 148                  
 8.2.2  典型等待/通知 150                  
 8.2.3  運(yùn)用同步方法的等待/通知 151                  
 8.3  用于等待/通知的對(duì)象API 153                  
 8.3.1  notify() 153                  
 8.3.2  notifyAll() 153                  
 8.3.3  wait() 153                  
 8.3.4  wait(long) 154                  
 8.3.5  wait(long, int) 154                  
 8.4  何時(shí)使用notifyAll()代替notify() 154                  
 8.5  遺漏通知 155                  
 8.5.1  MissedNotify 155                  
 8.5.2  MissedNotifyFix 159                  
 8.6  早期通知 163                  
 8.6.1  EarlyNotify 164                  
 8.6.2  EarlyNotifyFix 167                  
 8.7  示例CubbyHole 171                  
 8.8  使用join()等待線程的消亡 177                  
 8.8.1  join() 177                  
 8.8.2  join(long) 177                  
 8.8.3  join(long, int) 177                  
 8.8.4  JoinDemo 178                  
 8.9  使用管道在線程間流動(dòng)數(shù)據(jù) 181                  
 8.9.1  PipedBytes 182                  
 8.9.2  PipedCharacters 185                  
 8.10  使用ThreadLocal和InheritableThreadLocal 188                  
 8.10.1  ThreadLocal API 189                  
 8.10.2  ThreadID 189                  
 8.10.3  InheritableThreadLocal API 192                  
 8.10.4  InheritableThreadID 192                  
 8.11  小結(jié) 198                  
 第9章  線程和Swing 199                  
 9.1  為什么Swing工具包不是多線程安全 200                  
 9.2  使用SwingUtilities.invokeAndWait() 201                  
 9.3  使用SwingUtilities.invokeLater() 204                  
 9.4  使用SwingUtilities.isEventDispatchThread() 207                  
 9.5  何時(shí)不需要invokeAndWait()和invokeLater() 207                  
 9.6  在GUI設(shè)置中使用工作線程的必需性 208                  
 9.7  使用工作線程減輕事件線程的負(fù)擔(dān) 213                  
 9.8  在自定義組件中滾動(dòng)文本 220                  
 9.9  動(dòng)畫(huà)顯示一系列圖像 225                  
 9.10  在JLabel上顯示流逝的時(shí)間 229                  
 9.11  在容器內(nèi)浮動(dòng)組件 233                  
 9.12  小結(jié) 238                  
 第10章  線程組 239                  
 10.1  什么是線程組 240                  
 10.2  使用getParent() 241                  
 10.3  查找線程組的子組 241                  
 10.4  使用Thread的getThreadGroup()方法 242                  
 10.5  查找線程組中的所有線程 242                  
 10.6  理解線程組的安全性 242                  
 10.7  使用setMaxPriority()和getMaxPriority() 243                  
 10.8  使用interrupt() 243                  
 10.9  淘汰的方法:stop(). suspend()和resume() 243                  
 10.10  類(lèi)ThreadViewer 243                  
 10.11  小結(jié) 252                  
 第二部分  技    術(shù)                  
 第11章  自運(yùn)行對(duì)象 255                  
 11.1  簡(jiǎn)單自運(yùn)行類(lèi) 256                  
 11.2  使用內(nèi)部類(lèi)來(lái)隱藏run() 259                  
 11.3  要考慮的額外功能 261                  
 11.4  小結(jié) 267                  
 第12章  異?;卣{(diào) 268                  
 12.1  ExceptionListener接口 269                  
 12.2  支持ExceptionListener的輔助方法 269                  
 12.3  小結(jié) 276                  
 第13章  線程池 277                  
 13.1  線程池的好處 278                  
 13.2  線程池的考慮與開(kāi)銷(xiāo) 278                  
 13.3  泛型線程池:ThreadPool 279                  
 13.4  專(zhuān)門(mén)工作線程池:HttpServer 288                  
 13.4.1  類(lèi)HttpServer 289                  
 13.4.2  類(lèi)HttpWorker 296                  
 13.4.3  服務(wù)文件示例 305                  
 13.4.4  用3個(gè)工作線程運(yùn)行HttpServer 307                  
 13.4.5  用10個(gè)工作線程來(lái)運(yùn)行HttpServer 309                  
 13.5  小結(jié) 310                  
 第14章  等待完全超時(shí) 311                  
 14.1  意外提前返回 312                  
 14.2  判斷是否應(yīng)當(dāng)再次調(diào)用wait() 315                  
 14.3  通用等待-直到模式 319                  
 14.4  小結(jié) 325                  
 第15章  擺脫阻塞I/O狀態(tài)的束縛 326                  
 15.1  read()方法忽略中斷和終止請(qǐng)求 327                  
 15.2  關(guān)閉流來(lái)擺脫阻塞狀態(tài) 329                  
 15.2.1  類(lèi)CalcServer與擺脫阻塞的accept() 330                  
 15.2.2  類(lèi)CalcWorker與擺脫阻塞的read() 333                  
 15.2.3  類(lèi)CalcClient 336                  
 15.2.4  運(yùn)行CalcClient的輸出 337                  
 15.3  被中斷時(shí)拋出InterruptedIOException 338                  
 15.3.1  類(lèi)ThreadedInputStream 338                  
 15.3.2  類(lèi)BufferedThreadedInputStream 347                  
 15.4  針對(duì)可中斷I/O使用BufferedThreadedInputStream 349                  
 15.5  小結(jié) 354                  
 第16章  SureStop的運(yùn)用 356                  
 16.1  使用SureStop的原則 357                  
 16.2  SureStop類(lèi) 357                  
 16.3  使用SureStopVerbose的分析 363                  
 16.4  用SureStopDemo演示SureStop的工作方式 369                  
 16.5  小結(jié) 374                  
 第17章  類(lèi)BooleanLock的運(yùn)用 375                  
 17.1  背景 376                  
 17.2  類(lèi)BooleanLock 376                  
 17.3  使用BooleanLock在線程間發(fā)送信號(hào) 380                  
 17.4  避免阻塞于同步 382                  
 17.4.1  SyncBlock 382                  
 17.4.2  InterruptibleSyncBlock 385                  
 17.5  使用TransitionDetector檢測(cè)Value的短暫變化 388                  
 17.6  小結(jié) 394                  
 第18章  先進(jìn)先出(FIFO)隊(duì)列 395                  
 18.1  FIFO隊(duì)列如何工作 396                  
 18.2  用數(shù)組實(shí)現(xiàn)FIFO 397                  
 18.3  用Java的簡(jiǎn)單實(shí)現(xiàn):SimpleObjectFIFO 399                  
 18.4  對(duì)象引用的一個(gè)擴(kuò)展FIFO隊(duì)列:ObjectFIFO 405                  
 18.5  字節(jié)的FIFO隊(duì)列:ByteFIFO 419                  
 18.6  小結(jié) 432                  
 第三部分  附    錄                  
 附錄A  Thread API 435                  
 成員變量 436                  
 Thread.MAX_PRIORITY 436                  
 Thread.MIN_PRIORITY 436                  
 Thread.NORM_PRIORITY 436                  
 構(gòu)造函數(shù) 437                  
 Thread(ThreadGroup, Runnable, String) 437                  
 Thread(ThreadGroup, Runnable) 437                  
 Thread(ThreadGroup, String) 437                  
 Thread(Runnable, String) 437                  
 Thread(Runnable) 438                  
 Thread(String) 438                  
 Thread() 438                  
 靜態(tài)方法 438                  
 Thread.activeCount() 438                  
 Thread.currentThread() 438                  
 Thread.dumpStack() 438                  
 Thread.enumerate() 439                  
 Thread.interrupted() 439                  
 Thread.sleep(long) 439                  
 Thread.sleep(long, int) 439                  
 Thread.yield() 439                  
 實(shí)例方法 440                  
 checkAccess() 440                  
 destroy() 440                  
 getContextClassLoader() 440                  
 getName() 440                  
 getPriority() 440                  
 getThreadGroup() 440                  
 interrupt() 441                  
 isAlive() 441                  
 isDaemon() 441                  
 isInterrupted() 441                  
 join() 441                  
 join(long) 441                  
 join(long, int) 442                  
 run() 442                  
 setContextClassLoader(ClassLoader) 442                  
 setDaemon(boolean) 442                  
 setName(String) 442                  
 setPriority(int) 443                  
 start() 443                  
 toString() 443                  
 被淘汰的方法 443                  
 countStackFrames() 443                  
 resume() 443                  
 stop() 444                  
 stop(Throwable) 444                  
 suspend() 444                  
 附錄B  ThreadGroup API 445                  
 構(gòu)造函數(shù) 446                  
 ThreadGroup(ThreadGroup, String) 446                  
 ThreadGroup(String) 446                  
 實(shí)例方法 447                  
 activeCount() 447                  
 activeGroupCount() 447                  
 checkAccess() 447                  
 destroy() 447                  
 enumerate(Thread[], boolean) 447                  
 enumerate(Thread[]) 448                  
 enumerate(ThreadGroup[], boolean) 448                  
 enumerate(ThreadGroup[]) 448                  
 getMaxPriority() 448                  
 getName() 448                  
 getParent() 448                  
 interrupt() 449                  
 isDaemon() 449                  
 isDestroyed() 449                  
 list() 449                  
 parentOf(ThreadGroup) 449                  
 setDaemon(boolean) 449                  
 setMaxPriority(int) 449                  
 toString() 450                  
 uncaughtException(Thread, Throwable) 450                  
 被淘汰的方法 450                  
 allowThreadSuspension(boolean) 450                  
 resume() 450                  
 stop() 450                  
 suspend() 451                  
 索引 452                  

本目錄推薦

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