<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 閱讀(3064) 評論(4)  編輯  收藏 所屬分類: Application ServerBest Practise(JDK API)
    主站蜘蛛池模板: 日韩精品无码免费专区午夜 | 全免费a级毛片免费看| 亚洲国产成人久久综合碰碰动漫3d | 中文字幕免费观看全部电影| 亚洲视频精品在线| 好吊妞788免费视频播放| v片免费在线观看| 热久久这里是精品6免费观看| 亚洲AV第一页国产精品| 免费无码A片一区二三区| 久久久久久噜噜精品免费直播 | 蜜桃传媒一区二区亚洲AV| 丁香花免费高清视频完整版| 亚洲日韩AV无码一区二区三区人| 青青青国产色视频在线观看国产亚洲欧洲国产综合| 亚洲国产精品白丝在线观看| 又爽又黄无遮挡高清免费视频 | 国产免费av一区二区三区| A片在线免费观看| 老司机午夜在线视频免费观 | 国产一区二区三区免费观在线| 亚洲一区二区三区免费观看| 日韩在线永久免费播放| 久久香蕉国产线看观看亚洲片| 国产99视频精品免费观看7| 99在线视频免费观看| 亚洲一级毛片中文字幕| 亚洲欧洲日本在线| 成年女人毛片免费视频| 久久亚洲精品11p| 亚洲综合免费视频| 亚洲人成亚洲人成在线观看| 无码人妻精品一二三区免费| 免费在线观看一级片| 精品特级一级毛片免费观看| 亚洲美女自拍视频| 亚洲AV人无码综合在线观看| 亚洲精品国产成人影院| 日韩免费视频播播| 免费毛片a在线观看67194| 无码人妻一区二区三区免费n鬼沢|