qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Java線程池如何體現自己的用途

            Java線程池就像數據庫連接池一樣,是一個對象池。我們在使用的時候需要不斷的學習,這樣才能不斷的適應相關語言技術的變化。所有的對象池都有一個共同的目的,那就是為了提高對象的使用率,從而達到提高程序效率的目的。

            比如對于Servlet,它被設計為多線程的(如果它是單線程的,你就可以想象,當1000個人同時請求一個網頁時,在第一個人獲得請求結果之前,其它999個人都在郁悶地等待),如果為每個用戶的每一次請求都創建一個新的線程對象來運行的話,系統就會在創建線程和銷毀線程上耗費很大的開銷,大大降低系統的效率。因此,Servlet多線程機制背后有一個Java線程池在支持,線程池在初始化初期就創建了一定數量的線程對象,通過提高對這些對象的利用率,避免高頻率地創建對象,從而達到提高程序的效率的目的。

            下面實現一個最簡單的Java線程池,從中理解它的實現原理。為此我們定義了四個類,它們的用途及具體實現如下:

            Task(任務):這是個代表任務的抽象類,其中定義了一個deal()方法,繼承Task抽象類的子類需要實現這個方法,并把這個任務需要完成的具體工作在deal()方法編碼實現。Java線程池中的線程之所以被創建,就是為了執行各種各樣數量繁多的任務的,為了方便線程對任務的處理,我們需要用Task抽象類來保證任務的具體工作統一放在deal()方法里來完成,這樣也使代碼更加規范。

            Task的定義如下:

            Java代碼

          1.public abstract class Task {
          2.public enum State {
          3./* 新建 */NEW, /* 執行中 */RUNNING, /* 已完成 */FINISHED
          4.}
          5.// 任務狀態
          6.private State state = State.NEW;
          7.public void setState(State state) {
          8.this.state = state;
          9.}
          10.public State getState() {
          11.return state;
          12.}
          13.public abstract void deal();
          14.}
          15.public abstract class Task {
          16.public enum State {
          17./* 新建 */NEW, /* 執行中 */RUNNING, /* 已完成 */FINISHED
          18.}
          19.// 任務狀態
          20.private State state = State.NEW;
          21.public void setState(State state) {
          22.this.state = state;
          23.}
          24.public State getState() {
          25.return state;
          26.}
          27.public abstract void deal();
          28.}

            以上就是對Java線程池的相關代碼介紹。

          posted on 2012-02-08 16:50 順其自然EVO 閱讀(142) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年2月>
          2930311234
          567891011
          12131415161718
          19202122232425
          26272829123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长春市| 临漳县| 乐业县| 云梦县| 延吉市| 延寿县| 莎车县| 南安市| 峨山| 马鞍山市| 金塔县| 襄城县| 遵义市| 林周县| 改则县| 舟曲县| 临洮县| 屏东市| 西藏| 虎林市| 光泽县| 汶上县| 获嘉县| 文成县| 维西| 班戈县| 扶沟县| 杭锦后旗| 怀柔区| 锦州市| 彰化县| 三门峡市| 顺平县| 佛坪县| 伊金霍洛旗| 清水河县| 邛崃市| 黔西| 依兰县| 石门县| 鹤庆县|