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学习计划
     摘要: Sync:获得/释放(acquire/release) 协议


Mutex
ReentrantLock
Latch
CountDown

  阅读全文

posted @ 2008-09-11 23:01 大石头 阅读(270) | 评论 (0)  编辑

Java 线程/内存模型的缺陷和增强---摘录《J2SE进阶》
     摘要: 本文是由JR主持写作的《J2SE进阶》一书的部分章节整理而成,《J2SE进阶》正在写作、完善阶段。您阅读后,有任何建议、批评,请 和我联系 ,或在 这儿留言 。《J2SE进阶》写作项目组感谢您阅读本文。

Java在语言层次上实现了对线程的支持。它提供了Thread/Runnable/ThreadGroup等一系列封装的类和接口,让程序员可以高效的开发Java多线程应用。为了实现同步,Java提供了synchronize关键字以及object的wait()/notify()机制,可是在简单易用的背后,应藏着更为复杂的玄机,很多问题就是由此而起。
  阅读全文

posted @ 2008-09-07 11:10 大石头 阅读(224) | 评论 (0)  编辑

JAVA后台程序设计及UTIL.CONCURRENT包的应用
     摘要: JAVA后台程序设计及UTIL.CONCURRENT包的应用

何 恐

摘要 : 在很多软件项目中,JAVA语言常常被用来开发后台服务程序。线程池技术是提高这类程序性能的一个重要手段。在实践中,该技术已经被广泛的使用。本文首先 对设计后台服务程序通常需要考虑的问题进行了基本的论述,随后介绍了JAVA线程池的原理、使用和其他一些相关问题,最后对功能强大的JAVA开放源码线 程池包util.concurrent 在实际编程中的应用进行了详细介绍。
关键字: JAVA;线程池;后台服务程序;util.concurrent

  阅读全文

posted @ 2008-09-07 11:10 大石头 阅读(375) | 评论 (0)  编辑

线程池的介绍及简单实现
     摘要: 服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实现。

线程池的技术背景

  阅读全文

posted @ 2008-09-07 11:10 大石头 阅读(165) | 评论 (0)  编辑

线程池的实现
     摘要: 线程池也许很多比较陌生 但是提到servlet每个人都知道,servlet就是用线程池来处理请求的
一个线程池由线程池管理器 工作线程 任务队列和任务接口组成
一 线程池管理器---ThreadPoolMananger 主要负责启动 停止工作线程   阅读全文

posted @ 2008-09-07 11:10 大石头 阅读(209) | 评论 (0)  编辑

Design Pattern: Guarded Suspension 模式
     摘要: 考慮這麼一個伺服器,它可以處理來自多個客戶端的服務請求(Request),為了不丟失客戶的請求,它要維持一個緩衝區,客戶的請求會先儲存至緩衝區中,而伺服器會從緩衝區中取出請求並執行,如果緩衝區中沒有請求,則伺服器就等待,直到被通知有新的請求存入緩衝區中,伺服器再度進行請求的執行。  阅读全文

posted @ 2008-09-07 11:06 大石头 阅读(165) | 评论 (0)  编辑

Design Pattern: Thread-Per-Message 模式
     摘要: Thread-Per-Message模式是一個很簡單但很常應用的模式,尤其是在GUI程式中,我們舉個例子,當您設計一個文件編輯器時,您可能像這樣註冊一個開啟檔案的事件處理:  阅读全文

posted @ 2008-09-07 11:06 大石头 阅读(194) | 评论 (0)  编辑

Design Pattern: Worker Thread 模式
     摘要: Worker Thread模式在Request的管理上像是 Producer Consumer 模式,在Request的行為上像是 Command 模式。

Producer Consumer模式專注於Product的生產與消費,至於Product被消費時是作何處理,則不在它的討論範圍之中。
  阅读全文

posted @ 2008-09-07 11:06 大石头 阅读(218) | 评论 (0)  编辑

Design Pattern: Producer Consumer 模式
     摘要: Producer Consumer模式與 Guarded Suspension 模式 是類似的,只不過Guarded Suspension模式並不限制緩衝區的長度,Producer Consumer模式假設所生產的產品放置在一個長度有限制的緩衝區(就像是一個產品桌,它可以擺放的空間是有限的),如果緩衝區滿了,則生產者必須停止繼續將產品放到緩衝區中,直到消費者取走了產品而有了空間,而如果緩衝區中沒有產品,當然消費者必須等待,直到有新的產品放到緩衝區中。   阅读全文

posted @ 2008-09-07 11:06 大石头 阅读(184) | 评论 (0)  编辑

Design Pattern: Future 模式
     摘要: Future模式可以簡單的看成是 Proxy 模式 與 Thread-Per-Message 模式 的結合,在Proxy模式中,用一個Proxy來代替真正的目標(Subject)生成,目標的生成可能是費時的,例如在開啟一個內嵌圖片的文件中,希望程式能儘快完成開啟文件的動作,並顯示一個可接受的畫面給使用者看,在還不需要看到圖片的頁面中先使用Proxy代替真正的圖片載入,只有在真正需要看到圖片時,才由Proxy物件載入真正的圖片。  阅读全文

posted @ 2008-09-07 11:06 大石头 阅读(154) | 评论 (0)  编辑

Design Pattern: Two-phase Termination 模式
     摘要: Two-phase Termination直譯的話是「兩相終止」,不過就這個模式而言,該譯作「兩階段終止」比較適當,想像您有一個執行緒正在週期性的運作,在「運作階段」您送出了停止執行緒的請求,這時候執行緒不該慌張的馬上終止目前的工作,而是先完成這一次週期的工作,然後進入「善後階段」完成一些善後的工作,例如關閉檔案或網路串流,所謂的兩階段終止,即中止「運作階段」,並完成「善後階段」,完整的完成執行緒的工作。
  阅读全文

posted @ 2008-09-07 11:06 大石头 阅读(121) | 评论 (0)  编辑

Design Pattern: Read-Write-Lock 模式
     摘要: 如果有一個資料檔有可能同時間會有許多客戶端對它進行讀取與寫入的動作,則必須注意資料的同步問題,像是兩個寫入者進行寫入時,後一個寫入者的資料會有可能將次一個寫入者的資料覆蓋掉;而有時您希望讀取者看到的是最新的資料,如果在讀取的時候,有寫入者想要對資料進行寫入,則最好等待讀取者讀取完畢,相反的如果在寫入時有客戶想要讀取資料,則最好等待,以確保讀出來的資料是最新的資料。  阅读全文

posted @ 2008-09-07 11:06 大石头 阅读(190) | 评论 (0)  编辑

Design Pattern: Thread-Specific Storage 模式
     摘要: 無論如何,要編寫一個多執行緒安全(thread-safe)的程式總是困難的,為了使用的共用資源,您必須小心的對共用資源進行同步,同步帶來一定的效能延遲,而另一方面,在處理同步的時候,又要注意物件的鎖定與釋放,避免產生死結,種種因素都使得編寫多執行緒程式變得困難。

Thread-Specific Storage模式嘗試從另一個角度來解釋多執行緒共用資源的問題,其思考點很簡單,即然共用資源這麼困難,那麼就乾脆不要共用,何不為每個執行緒創造一個資源的複本,將每一個執行緒存取資料的行為加以隔離,其實現的方法,就是給予每一個執行緒一個特定空間來保管該執行緒所獨享的資源,也因此而稱之為 Thread- Specific Storage模式。
  阅读全文

posted @ 2008-09-07 11:06 大石头 阅读(157) | 评论 (0)  编辑