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

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

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

    posts - 156,  comments - 601,  trackbacks - 0

       本月Tomcat 7.0.14版本正式發布,其最顯著的一個新功能就是引入了StuckThreadDetectionValve功能,該功能可以幫助分析和檢查耗時的請求或潛在可能會出現請求線程阻塞等情況。

        StuckThreadDetectionValve(阻塞線程檢測)功能是通過擴展TomcatValve機制進行實現。下面是針對此塊代碼的實現主要源代碼進行的分析,來探究一下該功能的實現原理。

       下面是核心的代碼片段,但從實現思路上還是比較好理解的,針對所有的tomcat請求,該valve都會攔截,并到當的執行的線程通過一個引入進行保存,記錄開始時間。同時啟動MonitoredThread線程對當前請求線程的運行時間進行檢測,一旦出現超出設置的時候值,則會進行保存,這樣可以就很容易的獲取那些效率低下的請求線程情況。

    整體類圖如下:


    以下是幾個重要的全局屬性:


    stuckCount 可能為阻塞的線程數

    threshold 阻塞線程判斷的運行時間的依據,超過該時間上限,則將環境該線程為阻塞線程

    activeThreads 當前正在運行中的線程

    completedStuckThreadsQueue 已經執行完成的阻塞線程情況

    invoke 方法代碼如下:


    把所有請求的線程都放置到 activeThreads Map對象中,在執行完成后,進行清除。

    接下來,復寫backgroundProcess方法, 對線程的運行狀態和時間進行檢測,一旦有發現阻塞嫌疑,則進行記錄。


    至此實現原理已經介紹完成。完整的代碼實現可以參見Tomcat 7源碼 下載地址

    Good Luck!
    Yours Matthew!
    posted on 2011-05-25 21:51 x.matthew 閱讀(3074) 評論(4)  編輯  收藏 所屬分類: Application ServerBest Practise(JDK API)
    主站蜘蛛池模板: 亚洲午夜久久久久久久久电影网| 免费影院未满十八勿进网站| 亚洲av麻豆aⅴ无码电影| 四虎在线免费视频| 久久精品国产亚洲AV麻豆不卡| 九九久久精品国产免费看小说| 中文精品人人永久免费| 浮力影院亚洲国产第一页| 日本永久免费a∨在线视频| 免费人成激情视频| 黄色大片免费网站| 91制片厂制作传媒免费版樱花 | 亚洲Av无码乱码在线观看性色| 理论亚洲区美一区二区三区| 99久久免费国产特黄| 亚洲区小说区图片区QVOD| 国产成人免费AV在线播放 | 日韩在线视频免费| 亚洲va中文字幕无码| 国产无遮挡色视频免费观看性色| 在线看片v免费观看视频777 | 久久亚洲国产视频| 麻豆视频免费播放| 亚洲av综合av一区二区三区| 又爽又黄无遮挡高清免费视频| 又硬又粗又长又爽免费看 | 国产免费观看网站| 国产乱妇高清无乱码免费| 亚洲日本va在线视频观看| 8x网站免费入口在线观看| 亚洲日本VA午夜在线电影| 四虎影视永久免费视频观看| 久久性生大片免费观看性| 久久精品国产亚洲AV高清热| 成年女人毛片免费播放视频m | 亚洲av日韩aⅴ无码色老头| 亚洲色婷婷六月亚洲婷婷6月| 99视频有精品视频免费观看| 久久青青草原亚洲av无码| 91免费国产精品| 日本中文字幕免费看|