<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
    主站蜘蛛池模板: 日韩人妻一区二区三区免费| 亚洲一区二区三区精品视频| MM1313亚洲精品无码久久| 无码人妻精品中文字幕免费东京热| 亚洲伊人色欲综合网| 国产在线观看无码免费视频| 久久久久久A亚洲欧洲AV冫| 无人视频免费观看免费视频 | 你好老叔电影观看免费| 亚洲A丁香五香天堂网| 免费人成网站永久| 天堂亚洲免费视频| 未满十八私人高清免费影院| 久久精品国产精品亚洲人人| 国产在线观看无码免费视频| 亚洲av无码专区在线播放| 无码日韩精品一区二区免费暖暖 | 亚洲免费福利在线视频| 国产精品亚洲综合久久| 永久免费av无码网站大全| 免费人成网上在线观看| 亚洲日产无码中文字幕| 亚洲精品免费观看| 亚洲成_人网站图片| 午夜亚洲av永久无码精品| 免费无码av片在线观看| 青青草原精品国产亚洲av| av无码国产在线看免费网站| 亚洲成a人片在线观看天堂无码 | 在线日韩av永久免费观看| 一级毛片不卡免费看老司机| 久久亚洲精品无码| 国产一卡2卡3卡4卡无卡免费视频| 亚洲大码熟女在线观看| 亚洲精品夜夜夜妓女网| 免费影院未满十八勿进网站| 国产偷国产偷亚洲高清在线| 亚洲人成无码网站| 在线视频免费观看www动漫| 二个人看的www免费视频| 色婷五月综激情亚洲综合|