相关栏目: IT资讯 当前位置:主页 > IT资讯 >

Tomcat7 StuckThreadDetectionValve 功能分析

发布时间:2019-01-07 作者:918Õ 分类:IT资讯

 本月Tomcat 7.0.14版本正式发布,其最显著的一个新功能就是引入了StuckThreadDetectionValve功能,该功能可以帮助分析和检查耗时的请求或潜在可能会出现请求线程阻塞等情况。

    StuckThreadDetectionValve(阻塞线程检测)功能是通过扩展Tomcat的Valve机制进行实现。下面是针对此块代码的实现主要源代码进行的分析,来探究一下该功能的实现原理。

   下面是核心的代码片段,但从实现思路上还是比较好理解的,针对所有的tomcat请求,该valve都会拦截,并到当的执行的线程通过一个引入进行保存,记录开始时间。同时启动MonitoredThread线程对当前请求线程的运行时间进行检测,一旦出现超出设置的时候值,则会进行保存,这样可以就很容易的获取那些效率低下的请求线程情况。

整体类图如下:

以下是几个重要的全局属性:

stuckCount 可能为阻塞的线程数

threshold 阻塞线程判断的运行时间的依据,超过该时间上限,则将环境该线程为阻塞线程

activeThreads 当前正在运行中的线程

completedStuckThreadsQueue 已经执行完成的阻塞线程情况

invoke 方法代码如下:

stuckCount 可能为阻塞的线程数

threshold 阻塞线程判断的运行时间的依据,超过该时间上限,则将环境该线程为阻塞线程

activeThreads 当前正在运行中的线程

completedStuckThreadsQueue 已经执行完成的阻塞线程情况

invoke 方法代码如下:

stuckCount 可能为阻塞的线程数

threshold 阻塞线程判断的运行时间的依据,超过该时间上限,则将环境该线程为阻塞线程

activeThreads 当前正在运行中的线程

completedStuckThreadsQueue 已经执行完成的阻塞线程情况

invoke 方法代码如下:

stuckCount 可能为阻塞的线程数

threshold 阻塞线程判断的运行时间的依据,超过该时间上限,则将环境该线程为阻塞线程

activeThreads 当前正在运行中的线程

completedStuckThreadsQueue 已经执行完成的阻塞线程情况

invoke 方法代码如下:

stuckCount 可能为阻塞的线程数

threshold 阻塞线程判断的运行时间的依据,超过该时间上限,则将环境该线程为阻塞线程

activeThreads 当前正在运行中的线程

completedStuckThreadsQueue 已经执行完成的阻塞线程情况

invoke 方法代码如下:

stuckCount 可能为阻塞的线程数

threshold 阻塞线程判断的运行时间的依据,超过该时间上限,则将环境该线程为阻塞线程

activeThreads 当前正在运行中的线程

completedStuckThreadsQueue 已经执行完成的阻塞线程情况

invoke 方法代码如下:

stuckCount 可能为阻塞的线程数

threshold 阻塞线程判断的运行时间的依据,超过该时间上限,则将环境该线程为阻塞线程

activeThreads 当前正在运行中的线程

completedStuckThreadsQueue 已经执行完成的阻塞线程情况

invoke 方法代码如下:

http://www.bkjia.com/HTML_CSS/476406.htmlwww.bkjia.comtruehttp://www.bkjia.com/HTML_CSS/476406.htmlTechArticle本月Tomcat 7.0.14版本正式发布,其最显著的一个新功能就是引入了StuckThreadDetectionValve功能,该功能可以帮助分析和检查耗时的请求或潜在可...

本文源自: 凯发国际

上一篇:PhoneGap-----Device Infomation、Network State and four kinds 下一篇:没有了

Copyright © 2005-2016 http://www.owlpma.com 凯发国际_凯发国际开户礼金_凯发注册送_新浪娱乐版权所有 凯发国际_凯发国际开户礼金_凯发注册送_新浪娱乐