[ 登录注册 ]

HTML/CSS

Tomcat7 StuckThreadDetectionValve 功能分析

2016-08-12 15:09:15 admin 返回上一页

 本月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.bozhiyue.com/html_css/2016/0812/368062.html
返回上一页    返回分类 上一篇:   下一篇:
相关