<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    xylz,imxylz

    關注后端架構、中間件、分布式和并發(fā)編程

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks

    01 2011 檔案

         摘要: 我們根據線程池的要求也很能夠猜測出其數據結構出來。
    線程池需要支持多個線程并發(fā)執(zhí)行,因此有一個線程集合Collection來執(zhí)行線程任務;
    涉及任務的異步執(zhí)行,因此需要有一個集合來緩存任務隊列Collection
    很顯然在多個線程之間協調多個任務,那么就需要一個線程安全的任務集合,同時還需要支持阻塞、超時操作,那么BlockingQueue是必不可少的;
    既然是線程池,出發(fā)點就是提高系統性能同時降低資源消耗,那么線程池的大小就有限制,因此需要有一個核心線程池大小(線程個數)和一個最大線程池大小(線程個數),有一個計數用來描述當前線程池大小;
    如果是有限的線程池大小,那么長時間不使用的線程資源就應該銷毀掉,這樣就需要一個線程空閑時間的計數來描述線程何時被銷毀;
    前面描述過線程池也是有生命周期的,因此需要有一個狀態(tài)來描述線程池當前的運行狀態(tài);
    線程池的任務隊列如果有邊界,那么就需要有一個任務拒絕策略來處理過多的任務,同時在線程池的銷毀階段也需要有一個任務拒絕策略來處理新加入的任務;
    上面種  閱讀全文
    posted @ 2011-01-18 23:43 imxylz 閱讀(16089) | 評論 (6)  編輯

         摘要: 在JDK 5.0之前,java.util.Timer/TimerTask是唯一的內置任務調度方法,而且在很長一段時間里很熱衷于使用這種方式進行周期性任務調度。
    首先研究下Timer/TimerTask的特性(至于javax.swing.Timer就不再研究了)。
    上面三段代碼反映了Timer/TimerTask的以下特性:
    Timer對任務的調度是基于絕對時間的。
    所有的TimerTask只有一個線程TimerThread來執(zhí)行,因此同一時刻只有一個TimerTask在執(zhí)行。
    任何一個TimerTask的執(zhí)行異常都會導致Timer終止所有任務。
    由于基于絕對時間并且是單線程執(zhí)行,因此在多個任務調度時,長時間執(zhí)行的任務被執(zhí)行后有可能導致短時間任務快速在短時間內被執(zhí)行多次或者干脆丟棄多個任務。  閱讀全文
    posted @ 2011-01-10 23:39 imxylz 閱讀(14461) | 評論 (32)  編輯

         摘要: 上一節(jié)中提到關閉線程池過程中需要對新提交的任務進行處理。這個是java.util.concurrent.RejectedExecutionHandler處理的邏輯。

    在沒有分析線程池原理之前先來分析下為什么有任務拒絕的情況發(fā)生。
    這里先假設一個前提:線程池有一個任務隊列,用于緩存所有待處理的任務,正在處理的任務將從任務隊列中移除。因此在任務隊列長度有限的情況下就會出現新任務的拒絕處理問題,需要有一種策略來處理應該加入任務隊列卻因為隊列已滿無法加入的情況。另外在線程池關閉的時候也需要對任務加入隊列操作進行額外的協調處理。

    RejectedExecutionHandler提供了四種方式來處理任務拒絕策略。  閱讀全文
    posted @ 2011-01-08 22:47 imxylz 閱讀(9977) | 評論 (0)  編輯

         摘要: 本著開發(fā)的原則,既然用到了別人家的東西,所以決定公開出來,也算是給別人一個參考。  閱讀全文
    posted @ 2011-01-05 10:00 imxylz 閱讀(4601) | 評論 (1)  編輯

         摘要:
    我們知道線程是有多種執(zhí)行狀態(tài)的,同樣管理線程的線程池也有多種狀態(tài)。JVM會在所有線程(非后臺daemon線程)全部終止后才退出,為了節(jié)省資源和有效釋放資源關閉一個線程池就顯得很重要。有時候無法正確的關閉線程池,將會阻止JVM的結束。
    線程池Executor是異步的執(zhí)行任務,因此任何時刻不能夠直接獲取提交的任務的狀態(tài)。這些任務有可能已經完成,也有可能正在執(zhí)行或者還在排隊等待執(zhí)行。因此關閉線程池可能出現一下幾種情況:
    平緩關閉:已經啟動的任務全部執(zhí)行完畢,同時不再接受新的任務
    立即關閉:取消所有正在執(zhí)行和未執(zhí)行的任務
    另外關閉線程池后對于任務的狀態(tài)應該有相應的反饋信息。  閱讀全文
    posted @ 2011-01-04 22:54 imxylz 閱讀(12582) | 評論 (6)  編輯


    ©2009-2014 IMXYLZ
    主站蜘蛛池模板: 久久久久亚洲av无码专区导航 | 久久久久亚洲精品无码蜜桃| 国产精品成人免费观看| 久久精品国产69国产精品亚洲| 日韩色视频一区二区三区亚洲| 四虎影院免费视频| 亚洲AV电影天堂男人的天堂| 天天摸夜夜摸成人免费视频 | 中文字幕av免费专区| 国产aⅴ无码专区亚洲av麻豆| 中国精品一级毛片免费播放| 亚洲人成人无码网www电影首页| 在线观看免费视频一区| 亚洲毛片在线观看| 在线看片无码永久免费视频| 亚洲日本va一区二区三区| 可以免费观看的一级毛片| 在线免费视频你懂的| 亚洲成年轻人电影网站www | 最近中文字幕大全免费视频 | 久久久久亚洲AV成人网| 成人性生交大片免费看好| 亚洲国产视频网站| 国产无遮挡裸体免费视频| 又硬又粗又长又爽免费看| 国产亚洲精AA在线观看SEE| 最近中文字幕高清免费中文字幕mv | 久久国产免费福利永久| 亚洲人成色99999在线观看| 亚洲人成网站18禁止一区| 99re6在线精品视频免费播放| 亚洲一区二区影视| 亚洲片国产一区一级在线观看 | 亚洲精品蜜夜内射| 亚洲免费电影网站| 国产精品亚洲一区二区三区久久| 亚洲一区二区高清| 久久久久久精品免费免费自慰| 久久精品国产亚洲AV未满十八| 最新国产AV无码专区亚洲| 青青视频观看免费99|