util.concurrent學習計劃
posted @ 2008-09-11 23:01 大石頭 閱讀(279) | 評論 (0) 編輯
keep moving!We must not cease from exploration. And the end of all our exploring will be to arrive where we began and to know the place for the first time.
隨筆 - 37, 文章 - 2, 評論 - 3, 引用 - 0
|
多線程util.concurrent學習計劃posted @ 2008-09-11 23:01 大石頭 閱讀(279) | 評論 (0) 編輯 Java 線程/內存模型的缺陷和增強---摘錄《J2SE進階》
摘要: 本文是由JR主持寫作的《J2SE進階》一書的部分章節整理而成,《J2SE進階》正在寫作、完善階段。您閱讀后,有任何建議、批評,請 和我聯系 ,或在 這兒留言 。《J2SE進階》寫作項目組感謝您閱讀本文。
Java在語言層次上實現了對線程的支持。它提供了Thread/Runnable/ThreadGroup等一系列封裝的類和接口,讓程序員可以高效的開發Java多線程應用。為了實現同步,Java提供了synchronize關鍵字以及object的wait()/notify()機制,可是在簡單易用的背后,應藏著更為復雜的玄機,很多問題就是由此而起。 閱讀全文 posted @ 2008-09-07 11:10 大石頭 閱讀(233) | 評論 (0) 編輯 JAVA后臺程序設計及UTIL.CONCURRENT包的應用
摘要: JAVA后臺程序設計及UTIL.CONCURRENT包的應用
何 恐 摘要 : 在很多軟件項目中,JAVA語言常常被用來開發后臺服務程序。線程池技術是提高這類程序性能的一個重要手段。在實踐中,該技術已經被廣泛的使用。本文首先 對設計后臺服務程序通常需要考慮的問題進行了基本的論述,隨后介紹了JAVA線程池的原理、使用和其他一些相關問題,最后對功能強大的JAVA開放源碼線 程池包util.concurrent 在實際編程中的應用進行了詳細介紹。 關鍵字: JAVA;線程池;后臺服務程序;util.concurrent 閱讀全文 posted @ 2008-09-07 11:10 大石頭 閱讀(385) | 評論 (0) 編輯 線程池的介紹及簡單實現
摘要: 服務器程序利用線程技術響應客戶請求已經司空見慣,可能您認為這樣做效率已經很高,但您有沒有想過優化一下使用線程的方法。該文章將向您介紹服務器程序如何利用線程池來優化性能并提供一個簡單的線程池實現。
線程池的技術背景 閱讀全文 posted @ 2008-09-07 11:10 大石頭 閱讀(171) | 評論 (0) 編輯 線程池的實現
摘要: 線程池也許很多比較陌生 但是提到servlet每個人都知道,servlet就是用線程池來處理請求的
一個線程池由線程池管理器 工作線程 任務隊列和任務接口組成 一 線程池管理器---ThreadPoolMananger 主要負責啟動 停止工作線程 閱讀全文 posted @ 2008-09-07 11:10 大石頭 閱讀(217) | 評論 (0) 編輯 Design Pattern: Guarded Suspension 模式
摘要: 考慮這麼一個伺服器,它可以處理來自多個客戶端的服務請求(Request),為了不丟失客戶的請求,它要維持一個緩衝區,客戶的請求會先儲存至緩衝區中,而伺服器會從緩衝區中取出請求並執行,如果緩衝區中沒有請求,則伺服器就等待,直到被通知有新的請求存入緩衝區中,伺服器再度進行請求的執行。 閱讀全文
posted @ 2008-09-07 11:06 大石頭 閱讀(172) | 評論 (0) 編輯 Design Pattern: Thread-Per-Message 模式
摘要: Thread-Per-Message模式是一個很簡單但很常應用的模式,尤其是在GUI程式中,我們舉個例子,當您設計一個文件編輯器時,您可能像這樣註冊一個開啟檔案的事件處理: 閱讀全文
posted @ 2008-09-07 11:06 大石頭 閱讀(200) | 評論 (0) 編輯 Design Pattern: Worker Thread 模式
摘要: Worker Thread模式在Request的管理上像是 Producer Consumer 模式,在Request的行為上像是 Command 模式。
Producer Consumer模式專注於Product的生產與消費,至於Product被消費時是作何處理,則不在它的討論範圍之中。 閱讀全文 posted @ 2008-09-07 11:06 大石頭 閱讀(226) | 評論 (0) 編輯 Design Pattern: Producer Consumer 模式
摘要: Producer Consumer模式與 Guarded Suspension 模式 是類似的,只不過Guarded Suspension模式並不限制緩衝區的長度,Producer Consumer模式假設所生產的產品放置在一個長度有限制的緩衝區(就像是一個產品桌,它可以擺放的空間是有限的),如果緩衝區滿了,則生產者必須停止繼續將產品放到緩衝區中,直到消費者取走了產品而有了空間,而如果緩衝區中沒有產品,當然消費者必須等待,直到有新的產品放到緩衝區中。 閱讀全文
posted @ 2008-09-07 11:06 大石頭 閱讀(191) | 評論 (0) 編輯 Design Pattern: Future 模式
摘要: Future模式可以簡單的看成是 Proxy 模式 與 Thread-Per-Message 模式 的結合,在Proxy模式中,用一個Proxy來代替真正的目標(Subject)生成,目標的生成可能是費時的,例如在開啟一個內嵌圖片的文件中,希望程式能儘快完成開啟文件的動作,並顯示一個可接受的畫面給使用者看,在還不需要看到圖片的頁面中先使用Proxy代替真正的圖片載入,只有在真正需要看到圖片時,才由Proxy物件載入真正的圖片。 閱讀全文
posted @ 2008-09-07 11:06 大石頭 閱讀(162) | 評論 (0) 編輯 Design Pattern: Two-phase Termination 模式
摘要: Two-phase Termination直譯的話是「兩相終止」,不過就這個模式而言,該譯作「兩階段終止」比較適當,想像您有一個執行緒正在週期性的運作,在「運作階段」您送出了停止執行緒的請求,這時候執行緒不該慌張的馬上終止目前的工作,而是先完成這一次週期的工作,然後進入「善後階段」完成一些善後的工作,例如關閉檔案或網路串流,所謂的兩階段終止,即中止「運作階段」,並完成「善後階段」,完整的完成執行緒的工作。
閱讀全文 posted @ 2008-09-07 11:06 大石頭 閱讀(133) | 評論 (0) 編輯 Design Pattern: Read-Write-Lock 模式
摘要: 如果有一個資料檔有可能同時間會有許多客戶端對它進行讀取與寫入的動作,則必須注意資料的同步問題,像是兩個寫入者進行寫入時,後一個寫入者的資料會有可能將次一個寫入者的資料覆蓋掉;而有時您希望讀取者看到的是最新的資料,如果在讀取的時候,有寫入者想要對資料進行寫入,則最好等待讀取者讀取完畢,相反的如果在寫入時有客戶想要讀取資料,則最好等待,以確保讀出來的資料是最新的資料。 閱讀全文
posted @ 2008-09-07 11:06 大石頭 閱讀(198) | 評論 (0) 編輯 Design Pattern: Thread-Specific Storage 模式
摘要: 無論如何,要編寫一個多執行緒安全(thread-safe)的程式總是困難的,為了使用的共用資源,您必須小心的對共用資源進行同步,同步帶來一定的效能延遲,而另一方面,在處理同步的時候,又要注意物件的鎖定與釋放,避免產生死結,種種因素都使得編寫多執行緒程式變得困難。
Thread-Specific Storage模式嘗試從另一個角度來解釋多執行緒共用資源的問題,其思考點很簡單,即然共用資源這麼困難,那麼就乾脆不要共用,何不為每個執行緒創造一個資源的複本,將每一個執行緒存取資料的行為加以隔離,其實現的方法,就是給予每一個執行緒一個特定空間來保管該執行緒所獨享的資源,也因此而稱之為 Thread- Specific Storage模式。 閱讀全文 posted @ 2008-09-07 11:06 大石頭 閱讀(165) | 評論 (0) 編輯
|
|