首頁
中文書目錄
原文書目錄
 站內快速搜尋
資源中心
Book Series
Special Interest













■好消息,歐萊禮書籍已重新鋪貨至各大書局及網路書店,歡迎讀者選購       ■歡迎各院校採用歐萊禮書籍,學校團購請洽校園服務團隊

Learning Java the O'Reilly's Way

Java Threads, 2nd Ed


在 Windows 程式設計中,不是每個程式員都需要使用到執行緒,但對 Java 的程式員來說,想寫出一個真正的 Java 程式(那些交作業用的小程式不算),幾乎都會用到執行緒。執行緒之所以在 Windows 和 Java 中的重要性不同,原因有二:
  • Windows 的 event-driven 方式和 Java 的 event model 不同: Windows 提供許多 non-blocking API、call-back function 機制;而早期 Java 的 API 都是 blocking 形式的,如果不想阻礙程式的進行,就必須使用執行緒。
  • Windows 可以設定 timer(WM_TIMER 訊息),但早期 Java 不支援 timer ,必須利用執行緒來模擬 timer 。
當然,少數兩點狀況現在已經不太一樣了,因為隨著版本的演進,Java也開始支援timer和non-blocking IO。

除了上述兩點之外,下面列出兩點也需要使用執行緒的時機:
  • 某件工作如果獨立而冗長,使用執行緒可以讓使用者可以不用枯候,甚至有可能提升執行效率。
  • 使用平行演算法時,也需要使用執行緒。
因為執行緒對 Java 來說實在太重要了,所以 Java 程式員有必要徹底瞭解執行緒的一切,才能駕馭得當。許多人認為執行緒很難,其實不然。「緒可敘,非常序」,教導執行緒時,正確的順序很重要,否則讀者可能會懵懵懂懂、一知半解。我認為《Java Threads》在這方面做得很好,它以循序漸進、引導的方式教導讀者執行緒的正確使用方式,所以即使讀者原本對執行緒一點概念都沒有,也能輕易地閱讀並理解其內容。 下面列出此書的大綱和順序:

第一章,Introduction to Threading:簡單地介紹 thread。
第二章,The Java Threading API:介紹 Java 最基本的 thread API。
第三章,Synchronization Techniques:介紹多執行緒時要注意的同步化問題。
第四章,Wait and Notify:如何善用 wait() 和 notify() 來避免 busy waiting
第五章,Useful Examples of Java Thread Programming:透過幾個範例程式讓你能體會執行緒的使用方式。
第六章,Java Thread Scheduling:自行控制執行緒的排程方式
第七章,Java Thread Scheduling Examples:執行緒排程的範例。
第八章,Advanced Synchronization Topics:如何避免 deadlock、starvation ,如何設計出 thread-safe 的類別。
第九章,Parallelizing for Multiprocessor Machines:在多 CPU 的機器上,執行緒的相關問題。
第十章,Thread Groups:如何利用 Thread Group 來管理 thread。
附錄 A,Miscellaneous Topics:討論一些前面未觸及的執行緒問題。
附錄 B,Exceptions and Errors:討論執行緒相關的例外和錯誤。
本書提供了許多簡短的範例程式,讓讀者更能體會作者所欲陳述的內容。第五章更設計了一些實用的例子,讓你瞭解 thread 程式設計的方式和應用所在。

相當特別的是,本書大量採用引導式教學:先提出一個問題,然後提出一個直覺上的解決方法,再說明這個方法為什麼行不通,最後告訴讀者正確的方法為何。我相當 喜歡這樣的陳述方式,讓人有「山窮水盡移無路,柳暗花明又一村的」感覺,體會也因此更加深刻。

即使你認為自己已經懂得 Java thread 程式設計,我還是建議你看看此書,你將會有許多意料之外的收穫,而這些收穫對你以後的 Java 程式設計會有相當大的幫助。

本文作者:蔡學鏞
張貼日期:12/11/2002

| 首頁 | 聯絡我們 |
© 2009, O'Reilly Media, Inc. Taiwan Branch